# CVE-2022-46149: Cap'n Proto vulnerable to out-of-bounds read due to logic error handling list-of-list.

> Attackers can cause denial of service or read memory by sending malicious messages to applications using Cap'n Proto.

- **Severity:** Medium 5.4 (`CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:N/A:L`)
- **Exploited in the wild:** Not known
- **Login needed:** Not needed
- **Attackable:** Over the internet
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 30 Nov 2022
- **Updated:** 23 Apr 2025
- **Also known as:** DEBIAN-CVE-2022-46149, GHSA-qqff-4vw4-f6hx, JLSEC-2026-1268, RHSA-2023:1408, RUSTSEC-2022-0068, SUSE-SU-2022:4478-1, UBUNTU-CVE-2022-46149, openSUSE-SU-2024:12543-1, openSUSE-SU-2024:12557-1, openSUSE-SU-2025:15102-1

## What is CVE-2022-46149?

CVE-2022-46149 is a medium-severity memory corruption vulnerability in Fedoraproject Fedora, published on 30 Nov 2022. An attacker can exploit it over the internet without logging in, with no action from the victim.

### Official description

Cap'n Proto is a data interchange format and remote procedure call (RPC) system. Cap'n Proro prior to versions 0.7.1, 0.8.1, 0.9.2, and 0.10.3, as well as versions of Cap'n Proto's Rust implementation prior to 0.13.7, 0.14.11, and 0.15.2 are vulnerable to out-of-bounds read due to logic error handling list-of-list. This issue may lead someone to remotely segfault a peer by sending it a malicious message, if the victim performs certain actions on a list-of-pointer type. Exfiltration of memory is possible if the victim performs additional certain actions on a list-of-pointer type. To be vulnerable, an application must perform a specific sequence of actions, described in the GitHub Security Advisory. The bug is present in inlined code, therefore the fix will require rebuilding dependent applications. Cap'n Proto has C++ fixes available in versions 0.7.1, 0.8.1, 0.9.2, and 0.10.3. The `capnp` Rust crate has fixes available in versions 0.13.7, 0.14.11, and 0.15.2.

Weakness: CWE-125 (Out-of-bounds Read)

## Which versions are affected by CVE-2022-46149?

7 open source packages ship an affected version, including capnp. It affects 3 products.


| Package | Ecosystem | Affected | Fixed in |
| --- | --- | --- | --- |
| `capnp` | crates.io | All versions | 0.13.7 |
| `capnp` | crates.io | All versions | 0.13.7 |
| `capnp` | crates.io | From 0.0.0-0 | 0.13.7, 0.14.11, 0.15.2 |
| `capnp` | crates.io | From 0.14.0 | 0.14.11 |
| `capnp` | crates.io | From 0.14.0 | 0.14.11 |
| `capnp` | crates.io | From 0.15.0 | 0.15.2 |
| `capnp` | crates.io | From 0.15.0 | 0.15.2 |
| `conmon-rs` | Red Hat:openshift:4.12::el8 | All versions | 0:0.5.1-3.rhaos4.12.git.el8 |
| `conmon-rs` | Red Hat:openshift:4.12::el9 | All versions | 0:0.5.1-3.rhaos4.12.git.el9 |
| `capnproto` | SUSE:Linux Enterprise Module for Desktop Applications 15 SP4 | All versions | 0.9.1-150400.3.4.1 |
| `capnproto` | openSUSE:Leap 15.4 | All versions | 0.9.1-150400.3.4.1 |
| `python-pycapnp` | openSUSE:Tumbleweed | All versions | 2.0.0-2.5 |

Products: Capnproto Capnp, Capnproto Capnproto, Fedoraproject Fedora.

## How do I fix CVE-2022-46149?

Upgrade capnp to a fixed version for your release line: 0.13.7, 0.14.11 or 0.15.2.

## Is CVE-2022-46149 being exploited?

There is no known exploitation of CVE-2022-46149 in the wild and no public exploit code.

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2022-46149 and fix it if it is affected.

What it is: CVE-2022-46149 is a medium-severity memory corruption vulnerability in Fedoraproject Fedora, published on 30 Nov 2022. An attacker can exploit it over the internet without logging in, with no action from the victim.
Exploitation: There is no known exploitation of CVE-2022-46149 in the wild and no public exploit code.

Affected packages and fixed versions:
- capnp (crates.io): affected all versions; fixed in 0.13.7
- capnp (crates.io): affected all versions; fixed in 0.13.7
- capnp (crates.io): affected from 0.0.0-0; fixed in 0.13.7, 0.14.11, 0.15.2
- capnp (crates.io): affected from 0.14.0; fixed in 0.14.11
- capnp (crates.io): affected from 0.14.0; fixed in 0.14.11
- capnp (crates.io): affected from 0.15.0; fixed in 0.15.2
- capnp (crates.io): affected from 0.15.0; fixed in 0.15.2

Task:
1. 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.
2. 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.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2022-46149/ (Markdown: https://insights.sbomify.com/CVE-2022-46149/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2022-46149
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2022-46149
- OSV: https://osv.dev/vulnerability/CVE-2022-46149

---
From sbomify Insights: https://insights.sbomify.com/CVE-2022-46149/
Summaries are generated and may contain mistakes; the official description above is the record.
