{"id":"CVE-2026-62958","aliases":["EUVD-2026-114467","GHSA-gm4g-6c78-gr3w"],"status":"published","title":"libriscv: Out of bounds read vuln in the ELF parser (Denial of service)","description":"libriscv is a RISC-V sandbox and emulator. Prior to 1.18, a crafted ELF binary can cause out-of-bounds reads in the host emulator. `Memory\u003cW\u003e::binary_loader` checks `PT_LOAD` program-header bounds, but `Memory\u003cW\u003e::serialize_execute_segment` trusts section-header `sh_offset` and `sh_size` when locating `.text` without verifying the file range against `m_binary.size()`; `Memory\u003cW\u003e::lookup()` has a similar section-table problem. Malformed `.text` or `.symtab` offsets can therefore bypass the program-header checks and point outside the binary buffer, crashing rvlinux. With suitable memory layout or integer overflow, out-of-buffer host heap memory may instead be mapped into the guest by `create_execute_segment()`, potentially exposing host memory. The reported reproducer demonstrates a host SIGSEGV, while memory disclosure through grooming is described as possible rather than demonstrated. This issue is fixed in version 1.18.","severity":{"version":"3.1","score":7.9,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:H","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-11","score":0.00205,"percentile":0.10608,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":true,"fix_available":false},"cwes":["CWE-125","CWE-20"],"published":"2026-10-30T20:44:21Z","modified":"2026-11-03T19:06:41Z","exploits":[{"source":"pocgithub","id":"0Linear/CVE-2026-62958","title":"0Linear/CVE-2026-62958","date":"2026-06-27","url":"https://github.com/0Linear/CVE-2026-62958"}],"products":[{"vendor":"libriscv","product":"libriscv"}],"references":[{"url":"https://github.com/libriscv/libriscv/security/advisories/GHSA-gm4g-6c78-gr3w","tags":["x_refsource_CONFIRM","exploit","advisory"]},{"url":"https://github.com/libriscv/libriscv/commit/61ef9ca82c8876dd80b33780893ba512af780e93","tags":["x_refsource_MISC","fix"]},{"url":"https://github.com/libriscv/libriscv/commit/7bd1c189f9f9d54368cde096b07b194ad680f9fa","tags":["x_refsource_MISC","fix"]},{"url":"https://github.com/libriscv/libriscv/releases/tag/v1.18","tags":["x_refsource_MISC","web"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/62xxx/CVE-2026-62958.json","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-62958","tags":["advisory"]}],"sources":{"cve":[{"id":"CVE-2026-62958","title":"libriscv: Out of bounds read vuln in the ELF parser (Denial of service)","description":"libriscv is a RISC-V sandbox and emulator. Prior to 1.18, a crafted ELF binary can cause out-of-bounds reads in the host emulator. `Memory\u003cW\u003e::binary_loader` checks `PT_LOAD` program-header bounds, but `Memory\u003cW\u003e::serialize_execute_segment` trusts section-header `sh_offset` and `sh_size` when locating `.text` without verifying the file range against `m_binary.size()`; `Memory\u003cW\u003e::lookup()` has a similar section-table problem. Malformed `.text` or `.symtab` offsets can therefore bypass the program-header checks and point outside the binary buffer, crashing rvlinux. With suitable memory layout or integer overflow, out-of-buffer host heap memory may instead be mapped into the guest by `create_execute_segment()`, potentially exposing host memory. The reported reproducer demonstrates a host SIGSEGV, while memory disclosure through grooming is described as possible rather than demonstrated. This issue is fixed in version 1.18.","status":"published","published":"2026-10-30T20:44:21.663Z","modified":"2026-11-02T14:55:00.894Z","cvss":[{"version":"3.1","score":7.9,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:H","level":"high","assessor":"cna"}],"cwes":["CWE-20","CWE-125"],"updated_at":"2026-11-02T18:00:08.034842Z"}],"euvd":[{"id":"EUVD-2026-114467","description":"libriscv is a RISC-V sandbox and emulator. Prior to 1.18, a crafted ELF binary can cause out-of-bounds reads in the host emulator. `Memory\u003cW\u003e::binary_loader` checks `PT_LOAD` program-header bounds, but `Memory\u003cW\u003e::serialize_execute_segment` trusts section-header `sh_offset` and `sh_size` when locating `.text` without verifying the file range against `m_binary.size()`; `Memory\u003cW\u003e::lookup()` has a similar section-table problem. Malformed `.text` or `.symtab` offsets can therefore bypass the program-header checks and point outside the binary buffer, crashing rvlinux. With suitable memory layout or integer overflow, out-of-buffer host heap memory may instead be mapped into the guest by `create_execute_segment()`, potentially exposing host memory. The reported reproducer demonstrates a host SIGSEGV, while memory disclosure through grooming is described as possible rather than demonstrated. This issue is fixed in version 1.18.","status":"published","published":"2026-10-30T20:44:21Z","modified":"2026-11-02T14:55:00Z","cvss":[{"version":"3.1","score":7.9,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T16:58:44.835214Z"}],"nvd":[{"id":"CVE-2026-62958","description":"libriscv is a RISC-V sandbox and emulator. Prior to 1.18, a crafted ELF binary can cause out-of-bounds reads in the host emulator. `Memory\u003cW\u003e::binary_loader` checks `PT_LOAD` program-header bounds, but `Memory\u003cW\u003e::serialize_execute_segment` trusts section-header `sh_offset` and `sh_size` when locating `.text` without verifying the file range against `m_binary.size()`; `Memory\u003cW\u003e::lookup()` has a similar section-table problem. Malformed `.text` or `.symtab` offsets can therefore bypass the program-header checks and point outside the binary buffer, crashing rvlinux. With suitable memory layout or integer overflow, out-of-buffer host heap memory may instead be mapped into the guest by `create_execute_segment()`, potentially exposing host memory. The reported reproducer demonstrates a host SIGSEGV, while memory disclosure through grooming is described as possible rather than demonstrated. This issue is fixed in version 1.18.","status":"published","published":"2026-10-30T21:17:14.84Z","modified":"2026-11-02T19:35:33.347Z","cvss":[{"version":"3.1","score":7.9,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:H","level":"high","assessor":"secondary"}],"cwes":["CWE-20","CWE-125"],"updated_at":"2026-11-03T00:02:42.364722Z"}],"osv":[{"id":"CVE-2026-62958","title":"libriscv: Out of bounds read vuln in the ELF parser (Denial of service)","description":"libriscv is a RISC-V sandbox and emulator. Prior to 1.18, a crafted ELF binary can cause out-of-bounds reads in the host emulator. `Memory\u003cW\u003e::binary_loader` checks `PT_LOAD` program-header bounds, but `Memory\u003cW\u003e::serialize_execute_segment` trusts section-header `sh_offset` and `sh_size` when locating `.text` without verifying the file range against `m_binary.size()`; `Memory\u003cW\u003e::lookup()` has a similar section-table problem. Malformed `.text` or `.symtab` offsets can therefore bypass the program-header checks and point outside the binary buffer, crashing rvlinux. With suitable memory layout or integer overflow, out-of-buffer host heap memory may instead be mapped into the guest by `create_execute_segment()`, potentially exposing host memory. The reported reproducer demonstrates a host SIGSEGV, while memory disclosure through grooming is described as possible rather than demonstrated. This issue is fixed in version 1.18.","status":"published","published":"2026-10-30T20:44:21.663Z","modified":"2026-11-04T07:07:37.365952719Z","cvss":[{"version":"3.1","score":7.9,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:H","level":"high"}],"cwes":["CWE-125","CWE-20"],"updated_at":"2026-11-04T07:32:23.735279Z"}]}}
