// For flags

CVE-2022-46149

Cap'n Proto vulnerable to out-of-bounds read due to logic error handling list-of-list.

Severity Score

5.4
*CVSS v3.1

Exploit Likelihood

*EPSS

Affected Versions

*CPE

Public Exploits

0
*Multiple Sources

Exploited in Wild

-
*KEV

Decision

-
*SSVC
Descriptions

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.

Cap'n Proto es un formato de intercambio de datos y un sistema de llamada a procedimiento remoto (RPC). Cap'n Proro anterior a las versiones 0.7.1, 0.8.1, 0.9.2 y 0.10.3, así como las versiones de la implementación Rust de Cap'n Proto anteriores a 0.13.7, 0.14.11 y 0.15.2 son vulnerable a lecturas fuera de límites debido a un error lógico al manejar la lista de listas. Este problema puede llevar a que alguien segmente remotamente a un par enviándole un mensaje malicioso, si la víctima realiza ciertas acciones en un tipo de lista de punteros. La exfiltración de memoria es posible si la víctima realiza ciertas acciones adicionales en un tipo de lista de punteros. Para ser vulnerable, una aplicación debe realizar una secuencia específica de acciones, descrita en el Aviso de seguridad de GitHub. El error está presente en el código integrado, por lo que para solucionarlo será necesario reconstruir las aplicaciones dependientes. Cap'n Proto tiene correcciones de C++ disponibles en las versiones 0.7.1, 0.8.1, 0.9.2 y 0.10.3. La caja Rust `capnp` tiene correcciones disponibles en las versiones 0.13.7, 0.14.11 y 0.15.2.

A flaw was found in capnproto and capnp projects where a specially-crafted pointer could escape bounds checking by exploiting inconsistent handling of pointers when a list-of-structs is downgraded to a list-of-pointers.

*Credits: N/A
CVSS Scores
Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
Low
Integrity
None
Availability
Low
Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Changed
Confidentiality
Low
Integrity
None
Availability
Low
* Common Vulnerability Scoring System
SSVC
  • Decision:-
Exploitation
-
Automatable
-
Tech. Impact
-
* Organization's Worst-case Scenario
Timeline
  • 2022-11-28 CVE Reserved
  • 2022-11-30 CVE Published
  • 2024-06-22 EPSS Updated
  • 2024-08-03 CVE Updated
  • ---------- Exploited in Wild
  • ---------- KEV Due Date
  • ---------- First Exploit
CWE
  • CWE-125: Out-of-bounds Read
CAPEC
Affected Vendors, Products, and Versions
Vendor Product Version Other Status
Vendor Product Version Other Status <-- --> Vendor Product Version Other Status
Capnproto
Search vendor "Capnproto"
Capnproto
Search vendor "Capnproto" for product "Capnproto"
< 0.7.1
Search vendor "Capnproto" for product "Capnproto" and version " < 0.7.1"
-
Affected
Capnproto
Search vendor "Capnproto"
Capnproto
Search vendor "Capnproto" for product "Capnproto"
>= 0.9.0 < 0.9.2
Search vendor "Capnproto" for product "Capnproto" and version " >= 0.9.0 < 0.9.2"
-
Affected
Capnproto
Search vendor "Capnproto"
Capnproto
Search vendor "Capnproto" for product "Capnproto"
>= 0.10.0 < 0.10.3
Search vendor "Capnproto" for product "Capnproto" and version " >= 0.10.0 < 0.10.3"
-
Affected
Capnproto
Search vendor "Capnproto"
Capnproto
Search vendor "Capnproto" for product "Capnproto"
0.8.0
Search vendor "Capnproto" for product "Capnproto" and version "0.8.0"
-
Affected
Capnproto
Search vendor "Capnproto"
Capnp
Search vendor "Capnproto" for product "Capnp"
< 0.13.7
Search vendor "Capnproto" for product "Capnp" and version " < 0.13.7"
rust
Affected
Capnproto
Search vendor "Capnproto"
Capnp
Search vendor "Capnproto" for product "Capnp"
>= 0.14.0 < 0.14.11
Search vendor "Capnproto" for product "Capnp" and version " >= 0.14.0 < 0.14.11"
rust
Affected
Capnproto
Search vendor "Capnproto"
Capnp
Search vendor "Capnproto" for product "Capnp"
>= 0.15.0 < 0.15.2
Search vendor "Capnproto" for product "Capnp" and version " >= 0.15.0 < 0.15.2"
rust
Affected
Fedoraproject
Search vendor "Fedoraproject"
Fedora
Search vendor "Fedoraproject" for product "Fedora"
36
Search vendor "Fedoraproject" for product "Fedora" and version "36"
-
Affected
Fedoraproject
Search vendor "Fedoraproject"
Fedora
Search vendor "Fedoraproject" for product "Fedora"
37
Search vendor "Fedoraproject" for product "Fedora" and version "37"
-
Affected