Skip to content
Heist/ feed
Back to feed
UnratedFix available

nfc: s3fwrn5: allocate rx skb before consuming bytes

Type: advisorySources: OSV

In the Linux kernel, the following vulnerability has been resolved: nfc: s3fwrn5: allocate rx skb before consuming bytes s3fwrn82_uart_read() reports the number of accepted bytes to the serdev core. The current code consumes bytes into recv_skb and may already deliver a complete frame before allocating a fresh receive buffer. If that alloc_skb() fails, the callback returns 0 even though it has already consumed bytes, and it leaves recv_skb as NULL for the next receive callback. That breaks the receive_buf() accounting contract and can also lead to a NULL dereference on the next skb_put_u8(). Allocate the receive skb lazily before consuming the next byte instead. If allocation fails, return the number of bytes already accepted.

Products
Kernel
Affected versions
Not specified
Fixed versions
5.15.209, 6.1.175, 6.12.83, 6.18.24, 6.19.14, 6.6.136
CVEs
CVE-2026-43098
Confirmed fixed CVEs
Not specified
Updated in this feed
2 Nov 2026, 23:22 UTC · Revision 1

Source evidence

nfc: s3fwrn5: allocate rx skb before consuming bytes

core-osv · Original source

Published 6 May 2026, 07:40 UTC

In the Linux kernel, the following vulnerability has been resolved: nfc: s3fwrn5: allocate rx skb before consuming bytes s3fwrn82_uart_read() reports the number of accepted bytes to the serdev core. The current code consumes bytes into recv_skb and may already deliver a complete frame before allocating a fresh receive buffer. If that alloc_skb() fails, the callback returns 0 even though it has already consumed bytes, and it leaves recv_skb as NULL for the next receive callback. That breaks the receive_buf() accounting contract and can also lead to a NULL dereference on the next skb_put_u8(). Allocate the receive skb lazily before consuming the next byte instead. If allocation fails, return the number of bytes already accepted.

osv:CVE-2026-43098

Kernel

Fixed versions: 5.15.209, 6.1.175, 6.6.136, 6.12.83, 6.18.24, 6.19.14

Complete source record
{
  "id": "2e143a360636adb3bf7d48a39c820440c957632d6a5eb8c54d778b438a0217e1",
  "url": "https://osv.dev/vulnerability/CVE-2026-43098",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "nfc: s3fwrn5: allocate rx skb before consuming bytes",
    "summary": "In the Linux kernel, the following vulnerability has been resolved: nfc: s3fwrn5: allocate rx skb before consuming bytes s3fwrn82_uart_read() reports the number of accepted bytes to the serdev core. The current code consumes bytes into recv_skb and may already deliver a complete frame before allocating a fresh receive buffer. If that alloc_skb() fails, the callback returns 0 even though it has already consumed bytes, and it leaves recv_skb as NULL for the next receive callback. That breaks the receive_buf() accounting contract and can also lead to a NULL dereference on the next skb_put_u8(). Allocate the receive skb lazily before consuming the next byte instead. If allocation fails, return the number of bytes already accepted.",
    "evidence": "osv:CVE-2026-43098",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "5.15.209",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.1.175",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.6.136",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.12.83",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.18.24",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.19.14",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "unknown",
    "structured": {
      "id": "CVE-2026-43098",
      "aliases": [
        "CVE-2026-43098"
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "3f52c2cb7e3ada37513dabb69a22cf917dba754f"
                },
                {
                  "fixed": "20a57de2e79b797ed75382659d52bf4c7d9cb446"
                },
                {
                  "fixed": "e4ab0fd1c91882f2a7846b1817781c8741f7f315"
                },
                {
                  "fixed": "d8c2aa3c4a1ec530a485e46a1c4f1a118bb00156"
                },
                {
                  "fixed": "7c31f7a599cf00fad3c204092a91a924126c67e4"
                },
                {
                  "fixed": "6d931680a9851481c3243689488eafed08eeff71"
                },
                {
                  "fixed": "09822d3d6f68a0cdc4626e0c507324a4927f55a9"
                },
                {
                  "fixed": "5c14a19d5b1645cce1cb1252833d70b23635b632"
                }
              ]
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-43098.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.11.0"
                },
                {
                  "fixed": "5.15.209"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.16.0"
                },
                {
                  "fixed": "6.1.175"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.2.0"
                },
                {
                  "fixed": "6.6.136"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.7.0"
                },
                {
                  "fixed": "6.12.83"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.13.0"
                },
                {
                  "fixed": "6.18.24"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.19.0"
                },
                {
                  "fixed": "6.19.14"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-43098.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:24.665291442Z",
      "provider": "osv",
      "references": [
        "https://git.kernel.org/stable/c/09822d3d6f68a0cdc4626e0c507324a4927f55a9",
        "https://git.kernel.org/stable/c/20a57de2e79b797ed75382659d52bf4c7d9cb446",
        "https://git.kernel.org/stable/c/5c14a19d5b1645cce1cb1252833d70b23635b632",
        "https://git.kernel.org/stable/c/6d931680a9851481c3243689488eafed08eeff71",
        "https://git.kernel.org/stable/c/7c31f7a599cf00fad3c204092a91a924126c67e4",
        "https://git.kernel.org/stable/c/d8c2aa3c4a1ec530a485e46a1c4f1a118bb00156",
        "https://git.kernel.org/stable/c/e4ab0fd1c91882f2a7846b1817781c8741f7f315",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/43xxx/CVE-2026-43098.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-43098",
        "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
      ],
      "provider_metadata": {
        "cna_assigner": "Linux",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/43xxx/CVE-2026-43098.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-43098",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": null
  },
  "source_id": "core-osv",
  "document_id": 490864,
  "published_at": "2026-05-06T07:40:28.845+00:00"
}