{"answers":{"affected":"It affects 1 product.","exploited":"There is no known exploitation of CVE-2026-10645 in the wild and no public exploit code.","fix":"No fix has been published for CVE-2026-10645 yet. Limit exposure of the affected software until one is available.","what":"CVE-2026-10645 is a medium-severity memory corruption vulnerability in Zephyrproject Zephyr, published on 22 Jun 2026. It can only be exploited from the same machine or local network, and only if a user opens a file or follows a link."},"fix_prompt":"Check this codebase for CVE-2026-10645 and fix it if it is affected.\n\nWhat it is: CVE-2026-10645 is a medium-severity memory corruption vulnerability in Zephyrproject Zephyr, published on 22 Jun 2026. It can only be exploited from the same machine or local network, and only if a user opens a file or follows a link.\nExploitation: There is no known exploitation of CVE-2026-10645 in the wild and no public exploit code.\n\nAffected product: Zephyrproject Zephyr. No package-level version data is available, so check the vendor advisory linked from the reference page.\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-10645/ (Markdown: https://insights.sbomify.com/CVE-2026-10645/index.md)","id":"CVE-2026-10645","markdown":"https://insights.sbomify.com/CVE-2026-10645/index.md","name":"CVE-2026-10645","record":{"aliases":["GHSA-hwrh-9h3x-vccm","UBUNTU-CVE-2026-10645"],"analysis":{"component_type":"operating_system","fix_type":"patch","impacts":["data_read","denial_of_service"],"network_reachable":"adjacent_or_local","non_default_config":false,"product_category":"Zephyr RTOS","requires_auth":"none","summary":"A crafted ext2 filesystem image triggers an out-of-bounds read in Zephyr, leaking kernel heap memory and causing denial of service.","user_interaction":"required","vuln_class":"memory_corruption"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"zephyr","cpe":[{"product":"zephyr","vendor":"zephyrproject"}],"cvss":{"score":4.9,"severity":"medium","source":"cna","vector":"CVSS:3.1/AV:P/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H","version":"3.1"},"cwes":[{"id":"CWE-125","name":"Out-of-bounds Read"}],"description":"The Zephyr ext2 filesystem driver (subsys/fs/ext2) trusted the on-disk directory entry fields de_rec_len and de_name_len when walking a directory block. ext2_fetch_direntry() guarded only with de_name_len \u003e EXT2_MAX_FILE_NAME, but de_name_len is a uint8_t and EXT2_MAX_FILE_NAME is 255, so the check is always false; the function then memcpy'd up to 255 name bytes and the lookup/readdir paths advanced traversal by an unvalidated de_rec_len. Each directory block is read into a block_size-sized slab buffer, and block_off can be driven near the block end by preceding entries' rec_len, so the 8-byte header read and the subsequent name memcpy can read up to ~263 bytes past the end of the block buffer into adjacent heap/slab memory. On the readdir path those bytes are returned to the caller in fs_dirent.name, leaking adjacent kernel heap memory; a de_rec_len of 0 also causes a zero-progress infinite loop (denial of service), and the unlink path's memmove(de, next, next_reclen) over unvalidated records is an additional OOB read/write source. The defect is reached by any path-based operation (open, stat, unlink, rename, mkdir) or directory listing on a mounted ext2 volume, so a crafted or corrupted ext2 image on attacker-supplied storage (SD card, USB mass storage, or otherwise mounted image) triggers it. Affected: Zephyr ext2 from its introduction in v3.5.0 through v4.4.0. The fix validates rec_len and name_len in the parser and rejects entries whose header does not fit the remaining block or whose rec_len crosses the block boundary in every traversal caller.","ecosystems":[],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"none_known"},"has_fix":false,"headline":"Out-of-bounds read in Zephyr ext2 directory entry traversal from a crafted filesystem image","id":"CVE-2026-10645","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":null,"product":"zephyrproject:zephyr","products":["zephyrproject:zephyr"],"type":"memory_corruption","year":"2026"},"n_packages":0,"n_references":2,"next":{"headline":"Use-after-return in `zsock_getaddrinfo()` when a timed-out DNS query is retried without cancellation","id":"CVE-2026-10646"},"packages":[],"prev":{"headline":"Out-of-bounds write in Microchip SERCOM-G1 (PIC32CM-JH) async UART RX with 1-byte buffer","id":"CVE-2026-10644"},"products":["zephyr"],"published":"2026-06-22","related":[{"cvss_score":9.8,"headline":"Out-of-bounds read/write in HTTP WebSocket upgrade via non-null-terminated Sec-WebSocket-Key","id":"CVE-2026-5067","kev_date_added":null,"published":"2026-06-09"},{"cvss_score":9.8,"headline":"Bluetooth HCI Error Handling Double Free","id":"CVE-2022-3806","kev_date_added":null,"published":"2023-01-19"},{"cvss_score":9.8,"headline":"Memory corruption in getaddrinfo","id":"CVE-2017-14199","kev_date_added":null,"published":"2019-04-12"},{"cvss_score":9.8,"headline":"Null dereference in n/a","id":"CVE-2018-1000800","kev_date_added":null,"published":"2018-09-06"},{"cvss_score":9.6,"headline":"DOS: Incorrect handling of the initial HCI ACL_MTU handshake packet leads to crash of bluetooth host layer","id":"CVE-2021-3329","kev_date_added":null,"published":"2023-02-26"},{"cvss_score":9.6,"headline":"DoS: Invalid Initialization in le_read_buffer_size_complete","id":"CVE-2023-0397","kev_date_added":null,"published":"2023-01-19"},{"cvss_score":9.6,"headline":"Usb bluetooth device ACL read cb buffer overflow","id":"CVE-2021-3966","kev_date_added":null,"published":"2023-01-11"}],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"US public information, NVD API terms","name":"NVD"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":"no","exploitation":"none","technical_impact":"partial"},"state":"PUBLISHED","updated":"2026-10-15","vendors":["zephyrproject"]},"summary":"A crafted ext2 filesystem image triggers an out-of-bounds read in Zephyr, leaking kernel heap memory and causing denial of service.","url":"https://insights.sbomify.com/CVE-2026-10645/"}