{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-52999","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2026-06-09T07:44:35.377Z","datePublished":"2026-06-24T16:29:11.757Z","dateUpdated":"2026-08-05T12:32:30.042Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-05T12:32:30.042Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: nfnetlink_osf: fix out-of-bounds read on option matching\n\nIn nf_osf_match(), the nf_osf_hdr_ctx structure is initialized once\nand passed by reference to nf_osf_match_one() for each fingerprint\nchecked. During TCP option parsing, nf_osf_match_one() advances the\nshared ctx->optp pointer.\n\nIf a fingerprint perfectly matches, the function returns early without\nrestoring ctx->optp to its initial state. If the user has configured\nNF_OSF_LOGLEVEL_ALL, the loop continues to the next fingerprint.\nHowever, because ctx->optp was not restored, the next call to\nnf_osf_match_one() starts parsing from the end of the options buffer.\nThis causes subsequent matches to read garbage data and fail\nimmediately, making it impossible to log more than one match or logging\nincorrect matches.\n\nInstead of using a shared ctx->optp pointer, pass the context as a\nconstant pointer and use a local pointer (optp) for TCP option\ntraversal. This makes nf_osf_match_one() strictly stateless from the\ncaller's perspective, ensuring every fingerprint check starts at the\ncorrect option offset."}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H","baseScore":9.1,"baseSeverity":"CRITICAL"},"scenarios":[{"lang":"en","value":"AV:N - The vulnerable matcher runs on received IPv4 TCP SYN packets in the OSF netfilter hook path once OSF matching is configured, including PRE_ROUTING, LOCAL_IN, and FORWARD. A remote peer can supply the TCP options that drive the vulnerable parsing.\nAC:L - There is no race or hard-to-win timing condition; the attacker can craft and retry SYN packets with chosen TCP options. The need for OSF rules/fingerprints is part of the vulnerable deployment scenario.\nPR:N - The packet-processing path has no attacker privilege or authentication check. CAP_NET_ADMIN checks apply to installing OSF state/rules, not to sending packets that trigger an already configured matcher.\nUI:N - No victim user action is needed after the vulnerable OSF configuration is present. Packets are processed automatically by the kernel receive path.\nS:U - The bug remains within the kernel/netfilter security authority. It does not cross a VM, IOMMU, or other separate security boundary.\nC:H - The bug reads beyond the TCP options buffer or its stack copy during subsequent fingerprint checks after ctx->optp has been advanced. Because this is a kernel out-of-bounds read that can expose adjacent kernel memory through matching/logging side effects, confidentiality is High under the required conservative rule.\nI:N - The flaw is an out-of-bounds read and does not provide a write primitive or direct data modification. Incorrect OSF matches/log entries do not amount to modification of protected system data.\nA:H - The out-of-bounds read occurs in the kernel packet path and can be triggered repeatedly by crafted packets. On hardened/debug builds or unfavorable boundary placement it can produce an oops/panic, so availability is scored High conservatively."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/netfilter/nfnetlink_osf.c"],"versions":[{"version":"1a6a0951fc009f6d9fe8ebea2d2417d80d54097b","lessThan":"0145548346c4a30981a870a8ca00eac46ba27e85","status":"affected","versionType":"git"},{"version":"1a6a0951fc009f6d9fe8ebea2d2417d80d54097b","lessThan":"1c136f2c44a5913646bac85303612fd0825197a0","status":"affected","versionType":"git"},{"version":"1a6a0951fc009f6d9fe8ebea2d2417d80d54097b","lessThan":"1e19a07291bb8682c14c39a64725a3ae54ab8ccc","status":"affected","versionType":"git"},{"version":"1a6a0951fc009f6d9fe8ebea2d2417d80d54097b","lessThan":"32e50f92c7cf3f4eba29622179a5fcdc2aebab41","status":"affected","versionType":"git"},{"version":"1a6a0951fc009f6d9fe8ebea2d2417d80d54097b","lessThan":"70a3f31d25cf2ec9d4ddfa408120171ead955623","status":"affected","versionType":"git"},{"version":"1a6a0951fc009f6d9fe8ebea2d2417d80d54097b","lessThan":"21883587593d7c8bb519a79460a0b5bc5ffbdabd","status":"affected","versionType":"git"},{"version":"1a6a0951fc009f6d9fe8ebea2d2417d80d54097b","lessThan":"edb78a142d2e5948e63647c0646aa7e7886935f0","status":"affected","versionType":"git"},{"version":"1a6a0951fc009f6d9fe8ebea2d2417d80d54097b","lessThan":"f5ca450087c3baf3651055e7a6de92600f827af3","status":"affected","versionType":"git"},{"version":"0c1054e0e5fdef2369fb089e94def978bd209e1f","status":"affected","versionType":"git"},{"version":"8316b60582facd4068fb0916c4db2418c21b7174","status":"affected","versionType":"git"},{"version":"4.19.26","lessThan":"4.20","status":"affected","versionType":"semver"},{"version":"4.20.13","lessThan":"4.21","status":"affected","versionType":"semver"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/netfilter/nfnetlink_osf.c"],"versions":[{"version":"5.0","status":"affected"},{"version":"0","lessThan":"5.0","status":"unaffected","versionType":"semver"},{"version":"5.10.258","lessThanOrEqual":"5.10.*","status":"unaffected","versionType":"semver"},{"version":"5.15.209","lessThanOrEqual":"5.15.*","status":"unaffected","versionType":"semver"},{"version":"6.1.175","lessThanOrEqual":"6.1.*","status":"unaffected","versionType":"semver"},{"version":"6.6.141","lessThanOrEqual":"6.6.*","status":"unaffected","versionType":"semver"},{"version":"6.12.91","lessThanOrEqual":"6.12.*","status":"unaffected","versionType":"semver"},{"version":"6.18.33","lessThanOrEqual":"6.18.*","status":"unaffected","versionType":"semver"},{"version":"7.0.10","lessThanOrEqual":"7.0.*","status":"unaffected","versionType":"semver"},{"version":"7.1","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.0","versionEndExcluding":"5.10.258"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.0","versionEndExcluding":"5.15.209"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.0","versionEndExcluding":"6.1.175"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.0","versionEndExcluding":"6.6.141"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.0","versionEndExcluding":"6.12.91"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.0","versionEndExcluding":"6.18.33"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.0","versionEndExcluding":"7.0.10"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.0","versionEndExcluding":"7.1"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.19.26"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.20.13"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/0145548346c4a30981a870a8ca00eac46ba27e85"},{"url":"https://git.kernel.org/stable/c/1c136f2c44a5913646bac85303612fd0825197a0"},{"url":"https://git.kernel.org/stable/c/1e19a07291bb8682c14c39a64725a3ae54ab8ccc"},{"url":"https://git.kernel.org/stable/c/32e50f92c7cf3f4eba29622179a5fcdc2aebab41"},{"url":"https://git.kernel.org/stable/c/70a3f31d25cf2ec9d4ddfa408120171ead955623"},{"url":"https://git.kernel.org/stable/c/21883587593d7c8bb519a79460a0b5bc5ffbdabd"},{"url":"https://git.kernel.org/stable/c/edb78a142d2e5948e63647c0646aa7e7886935f0"},{"url":"https://git.kernel.org/stable/c/f5ca450087c3baf3651055e7a6de92600f827af3"}],"title":"netfilter: nfnetlink_osf: fix out-of-bounds read on option matching","x_generator":{"engine":"bippy-1.2.0"}}}}