xfrm: validate new SA's prefixlen using SA family when sel.family is unset
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 4.19.323, 5.4.285, 5.10.229, 5.15.170, 6.1.115, and 2 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: partial
Summary
In the Linux kernel, the following vulnerability has been resolved: xfrm: validate new SA's prefixlen using SA family when sel.family is unset This expands the validation introduced in commit 07bf7908950a ("xfrm: Validate address prefix lengths in the xfrm selector.") syzbot created an SA with usersa.sel.family = AF_UNSPEC usersa.sel.prefixlen_s = 128 usersa.family = AF_INET Because of the AF_UNSPEC selector, verify_newsa_info doesn't put limits on prefixlen_{s,d}. But then copy_from_user_state sets x->sel.family to usersa.family (AF_INET). Do the same conversion in verify_newsa_info before validating prefixlen_{s,d}, since that's how prefixlen is going to be used later on.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- Linux Linux
From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in f31398570acf0f0804c644006f7bfa9067106b0a; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in 401ad99a5ae7180dd9449eac104cb755f442e7f3; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in 8df5cd51fd70c33aa1776e5cbcd82b0a86649d73; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in 2d08a6c31c65f23db71a5385ee9cf9d8f9a67a71; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in bce1afaa212ec380bf971614f70909a27882b862; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in 7d9868180bd1e4cf37e7c5067362658971162366; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in e68dd80ba498265d2266b12dc3459164f4ff0c4a; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in 3f0ab59e6537c6a8f9e1b355b48f9c05a76e8563
- Linux Linux
2.6.12
- KernelLinux
From 2.6.12 · fixed in 4.19.323; From 4.20.0 · fixed in 5.4.285; From 5.5.0 · fixed in 5.10.229; From 5.11.0 · fixed in 5.15.170; From 5.16.0 · fixed in 6.1.115; From 6.2.0 · fixed in 6.6.59; From 6.7.0 · fixed in 6.11.6
References 8
git.kernel.org
- stable/c/f31398570acf0f0804c644006f7bfa9067106b0a
- stable/c/401ad99a5ae7180dd9449eac104cb755f442e7f3
- stable/c/8df5cd51fd70c33aa1776e5cbcd82b0a86649d73
- stable/c/2d08a6c31c65f23db71a5385ee9cf9d8f9a67a71
- stable/c/bce1afaa212ec380bf971614f70909a27882b862
- stable/c/7d9868180bd1e4cf37e7c5067362658971162366
- stable/c/e68dd80ba498265d2266b12dc3459164f4ff0c4a
- stable/c/3f0ab59e6537c6a8f9e1b355b48f9c05a76e8563