jffs2: fix use-after-free in jffs2_clear_xattr_subsystem
Noroxi assessment
Priority: Monitor (action score 31/100)
- The sources we track (CISA KEV, Exploit-DB, Metasploit, Nuclei, GitHub) show no public exploit code or exploitation in the wild.
- Probability of exploitation in the next 30 days: 0.25% (FIRST EPSS).
- Someone with local access to the system can trigger it. No account or password is required. A user must open a link or visit a page. No special conditions are required; it is repeatable.
- Fixed version: Linux Linux 22327bd7988f21de3a53c1373f3b81542bfe1f44, 30bf7244acf32f19cb722c39f7bc1c2a9f300422, 3bd2454162ec6bbb5503233c804fce6e4b6dcec5.
Low priority for now. Upgrade to Linux Linux 22327bd7988f21de3a53c1373f3b81542bfe1f44, 30bf7244acf32f19cb722c39f7bc1c2a9f300422, 3bd2454162ec6bbb5503233c804fce6e4b6dcec5 or later.
Generated automatically from the record's data: CVSS (NVD and CNA), CISA KEV and SSVC, FIRST EPSS, exploit sources, fixed versions. How we calculate it
Primary sources: NVD · CVE.org · FIRST EPSS
In the Linux kernel, the following vulnerability has been resolved: jffs2: fix use-after-free in jffs2_clear_xattr_subsystem When we mount a jffs2 image, assume that the first few blocks of the image are normal and contain at least one xattr-related inode, but the next block is abnormal. As a result, an error is returned in jffs2_scan_eraseblock(). jffs2_clear_xattr_subsystem() is then called in jffs2_build_filesystem() and then again in jffs2_do_fill_super(). Finally we can observe the following report: ================================================================== BUG: KASAN: use-after-free in jffs2_clear_xattr_subsystem+0x95/0x6ac Read of size 8 at addr ffff8881243384e0 by task mount/719 Call Trace: dump_stack+0x115/0x16b jffs2_clear_xattr_subsystem+0x95/0x6ac jffs2_do_fill_super+0x84f/0xc30 jffs2_fill_super+0x2ea/0x4c0 mtd_get_sb+0x254/0x400 mtd_get_sb_by_nr+0x4f/0xd0 get_tree_mtd+0x498/0x840 jffs2_get_tree+0x25/0x30 vfs_get_tree+0x8d/0x2e0 path_mount+0x50f/0x1e50 do_mount+0x107/0x130 __se_sys_mount+0x1c5/0x2f0 __x64_sys_mount+0xc7/0x160 do_syscall_64+0x45/0x70 entry_SYSCALL_64_after_hwframe+0x44/0xa9 Allocated by task 719: kasan_save_stack+0x23/0x60 __kasan_kmalloc.constprop.0+0x10b/0x120 kasan_slab_alloc+0x12/0x20 kmem_cache_alloc+0x1c0/0x870 jffs2_alloc_xattr_ref+0x2f/0xa0 jffs2_scan_medium.cold+0x3713/0x4794 jffs2_do_mount_fs.cold+0xa7/0x2253 jffs2_do_fill_super+0x383/0xc30 jffs2_fill_super+0x2ea/0x4c0 [...] Freed by task 719: kmem_cache_free+0xcc/0x7b0 jffs2_free_xattr_ref+0x78/0x98 jffs2_clear_xattr_subsystem+0xa1/0x6ac jffs2_do_mount_fs.cold+0x5e6/0x2253 jffs2_do_fill_super+0x383/0xc30 jffs2_fill_super+0x2ea/0x4c0 [...] The buggy address belongs to the object at ffff8881243384b8 which belongs to the cache jffs2_xattr_ref of size 48 The buggy address is located 40 bytes inside of 48-byte region [ffff8881243384b8, ffff8881243384e8) [...] ================================================================== The triggering of the BUG is shown in the following stack: ----------------------------------------------------------- jffs2_fill_super jffs2_do_fill_super jffs2_do_mount_fs jffs2_build_filesystem jffs2_scan_medium jffs2_scan_eraseblock <--- ERROR jffs2_clear_xattr_subsystem <--- free jffs2_clear_xattr_subsystem <--- free again ----------------------------------------------------------- An error is returned in jffs2_do_mount_fs(). If the error is returned by jffs2_sum_init(), the jffs2_clear_xattr_subsystem() does not need to be executed. If the error is returned by jffs2_build_filesystem(), the jffs2_clear_xattr_subsystem() also does not need to be executed again. So move jffs2_clear_xattr_subsystem() from 'out_inohash' to 'out_root' to fix this UAF problem.
- Published
- Feb 26, 2025
- Updated
- Aug 5, 2026
- EPSS
- 0.2% · 16th percentile
- CWE
- CWE-416
Report tools
Action score
31
Monitor
Low priority for now.
- CVSS
- 31 / 40 · 7.8 / 10
- CISA KEV
- 0 / 30 · Not listed
- EPSS
- 0 / 30 · 0.2%
CISA SSVC decision
- Exploitation
- none
- Automatable
- no
- Technical impact
- total
Vulnrichment: CISA's decision-tree inputs.
CNA vs NVD score
- NVD
- —
- CNA · Linux
- 7.8
- NVD has not scored this yet; the score shown is the CNA’s.
The score given by the assigning authority versus NVD’s independent score. A gap means the severity is contested.
Get told when this record changes
- Not in KEV: no record of exploitation in the wild
- No public exploit code on record
- A fix has been released
If any of these changes, we'll tell you in the daily email digest.
Running WordPress? Scan your site free with WP Lens
Noroxi analysis
What does it mean in your environment?
The assessment above is generated automatically from the record's data; it doesn't know your environment. Our team verifies on your systems whether this vulnerability is actually exploitable and which mitigation is enough.
We use this product, ask for helpAffected systems
Is your version affected?
Pick the product and type the version you run. It's compared with this record's version ranges in your browser; the version isn't sent anywhere.
| Vendor | Product | CPE |
|---|---|---|
| linux | linux kernel | cpe:2.3:o:linux:linux_kernel |
Affected versions
NVD version ranges (for catalog products). Add the product to your stack with a version and matching uses these.
- linux linux kernel2.6.18 and later · before 4.9.311
- linux linux kernel4.10 and later · before 4.14.276
- linux linux kernel4.15 and later · before 4.19.238
- linux linux kernel4.20 and later · before 5.4.189
- linux linux kernel5.5 and later · before 5.10.110
- linux linux kernel5.11 and later · before 5.15.33
- linux linux kernel5.16 and later · before 5.16.19
- linux linux kernel5.17 and later · before 5.17.2
Versions reported by the vendor
Affected version ranges reported by the assigning authority (Linux). Independent of NVD's CPE analysis and usually ahead of it.
Linux Linux
- 2.6.18affected
- aa98d7cf59b5b0764d3502662053489585faf2fe and later · before 9150cb625b46f68d524f4cfd491f1aafc23e10a9affected · git
- aa98d7cf59b5b0764d3502662053489585faf2fe and later · before 3bd2454162ec6bbb5503233c804fce6e4b6dcec5affected · git
- aa98d7cf59b5b0764d3502662053489585faf2fe and later · before c3b07c875fa8f906f932976460fd14798596f101affected · git
- aa98d7cf59b5b0764d3502662053489585faf2fe and later · before 30bf7244acf32f19cb722c39f7bc1c2a9f300422affected · git
- aa98d7cf59b5b0764d3502662053489585faf2fe and later · before 7bb7428dd73991bf4b3a7a61b493ca50046c2b13affected · git
- aa98d7cf59b5b0764d3502662053489585faf2fe and later · before 7a75740206af5f17e9f3efa384211cba70213da1affected · git
- aa98d7cf59b5b0764d3502662053489585faf2fe and later · before 22327bd7988f21de3a53c1373f3b81542bfe1f44affected · git
- aa98d7cf59b5b0764d3502662053489585faf2fe and later · before 8c0f024f29e055840a5a89fe23b96ae3f921afedaffected · git
- aa98d7cf59b5b0764d3502662053489585faf2fe and later · before 4c7c44ee1650677fbe89d86edbad9497b7679b5caffected · git
Package-level exposure
OSV and GitHub Advisory data: ecosystem, package and range. SBOM matching uses this table.
| Ecosystem | Package | Affected range | Fix |
|---|---|---|---|
| Debian:12 | linux | before 5.17.3-1 | 5.17.3-1 |
Same product
linux: all recordsOther highest-scoring records for the same primary product.
- CVE-2022-0847A flaw was found in the way the "flags" member of the new pipe buffer structure was lacking proper initialization in copy_page_to_iter_pipe KEV89Now
- CVE-2021-22555Heap Out-Of-Bounds Write in Netfilter IP6T_SO_SET_REPLACEKEV85Now
- CVE-2016-5195Race condition in mm/gup.c in the Linux kernel 2.x through 4.x before 4.8.3 allows local users to gain privileges by leveraging incorrect haKEV83Now
- CVE-2019-13272In the Linux kernel before 5.1.17, ptrace_link in kernel/ptrace.c mishandles the recording of the credentials of a process that wants to creKEV77This week
- CVE-2013-6282The (1) get_user and (2) put_user API functions in the Linux kernel before 3.5.5 on the v6k and v7 ARM platforms do not validate certain addKEV77This week
- CVE-2013-2094The perf_swevent_init function in kernel/events/core.c in the Linux kernel before 3.8.9 uses an incorrect integer data type, which allows loKEV77This week
Remediation
Which version to upgrade to
Fix versions compiled from the vendor, package registries and Microsoft. Verify the vendor's note before upgrading.
| Product / package | Fixed version | Source |
|---|---|---|
| Linux Linux | 22327bd7988f21de3a53c1373f3b81542bfe1f44 | Vendor (CNA) |
| Linux Linux | 30bf7244acf32f19cb722c39f7bc1c2a9f300422 | Vendor (CNA) |
| Linux Linux | 3bd2454162ec6bbb5503233c804fce6e4b6dcec5 | Vendor (CNA) |
| Linux Linux | 4c7c44ee1650677fbe89d86edbad9497b7679b5c | Vendor (CNA) |
| Linux Linux | 7a75740206af5f17e9f3efa384211cba70213da1 | Vendor (CNA) |
| Linux Linux | 7bb7428dd73991bf4b3a7a61b493ca50046c2b13 | Vendor (CNA) |
| Linux Linux | 8c0f024f29e055840a5a89fe23b96ae3f921afed | Vendor (CNA) |
| Linux Linux | 9150cb625b46f68d524f4cfd491f1aafc23e10a9 | Vendor (CNA) |
| Linux Linux | c3b07c875fa8f906f932976460fd14798596f101 | Vendor (CNA) |
| debian:linux | 5.17.3-1 · Debian:12 | Package registry (OSV) |
Exploit status
No known public exploit
No public exploit has been observed yet. That doesn't mean you're safe, only that the bar is a little higher.
Research context
For pentesters and researchers: attack profile, score disagreement, timeline, patch commits, credits, variant and chain candidates, bug bounty scope. All derived from existing data; no exploit code.
Timeline
From publication to today: proof of concept, Metasploit module, CISA KEV and fix record. Dates are as reported by the sources.
No dated events beyond publication.
FIRST EPSS daily score; only changes of 0.01 or more are recorded (step chart).
Patch and commit links
Commit, PR and diff links among the references. A starting point for patch-diffing and variant hunting; fixes, not exploits.
No commit or PR link among the references.
Credits
All researchersFinders, reporters and analysts named in the CNA record. Click a name for that researcher’s other records.
No credits in the CNA record.
Variant candidates
Same product, same weakness class, within 18 months. If the patch missed the root cause, the sibling bug is here.
No nightly-computed relations.
Chain candidates
An authentication bypass and a privilege-requiring bug in the same product, published close together: combined they may become an unauthenticated path.
—
Bug bounty scope
No known public program.
Source: bounty-targets-data (public HackerOne, Bugcrowd, Intigriti, YesWeHack listings).
Technical details
Attack conditions
- Someone with local access to the system can trigger it.
- No account or password is required.
- A user must open a link or visit a page.
- No special conditions are required; it is repeatable.
If successful
- Confidentiality
- high · data can be read
- Integrity
- high · data or configuration can be modified
- Availability
- high · the service can be disrupted
- Attack vector
- Local
- Attack complexity
- Low
- Privileges required
- None
- User interaction
- Required
- Scope
- Unchanged
- Confidentiality impact
- High
- Integrity impact
- High
- Availability impact
- High
Weakness class (CWE)
CWE-416 · Use After FreeCVSS vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
nvd-secondary
Root cause
After a memory region is freed, another reference pointing to it is still used. By then, the same region may have been allocated for different data.
The bug in code
The whole CWE-416 classA representative example of this vulnerability class. Not the vendor's source code; it shows the faulty pattern and its fix.
Vulnerable
free(dev->buf);/* ... another thread is still running ... */process(dev->buf);Fixed
lock(&dev->lock);free(dev->buf);dev->buf = NULL;unlock(&dev->lock);Attack context
MITRE CAPEC attack patterns and ATT&CK techniques for this weakness class (CWE). A starting point for detection rules and threat hunting.
MITRE has no CAPEC/ATT&CK mapping for this CWE.
Change log
- Fix✗ → ✓
For records you follow, these changes also arrive as notifications. →
References
Show all references (8 more)Show less
- git.kernel.org/stable/c/30bf7244acf32f19cb722c39f7bc1c2a9f300422
- git.kernel.org/stable/c/3bd2454162ec6bbb5503233c804fce6e4b6dcec5
- git.kernel.org/stable/c/4c7c44ee1650677fbe89d86edbad9497b7679b5c
- git.kernel.org/stable/c/7a75740206af5f17e9f3efa384211cba70213da1
- git.kernel.org/stable/c/7bb7428dd73991bf4b3a7a61b493ca50046c2b13
- git.kernel.org/stable/c/8c0f024f29e055840a5a89fe23b96ae3f921afed
- git.kernel.org/stable/c/9150cb625b46f68d524f4cfd491f1aafc23e10a9
- git.kernel.org/stable/c/c3b07c875fa8f906f932976460fd14798596f101
Vendor advisories and official records. Exploit/PoC links are deliberately left out.