CVE-2022-23495
Last modified
CVE-2022-23495 is a high-severity vulnerability rated 7.5/10 on the CVSS scale. go-merkledag implements the 'DAGService' interface and adds two ipld node types, Protobuf and Raw for the ipfs project. A `ProtoNode` may be modified in such a way as to cause various encode errors which will trigger a panic on common method calls that don't allow for error returns. EPSS estimates a 1.25% chance of exploitation in the next 30 days.
Description
go-merkledag implements the 'DAGService' interface and adds two ipld node types, Protobuf and Raw for the ipfs project. A `ProtoNode` may be modified in such a way as to cause various encode errors which will trigger a panic on common method calls that don't allow for error returns. A `ProtoNode` should only be able to encode to valid DAG-PB, attempting to encode invalid DAG-PB forms will result in an error from the codec. Manipulation of an existing (newly created or decoded) `ProtoNode` using the modifier methods did not account for certain states that would place the `ProtoNode` into an unencodeable form. Due to conformance with the [`github.com/ipfs/go-block-format#Block`](https://pkg.go.dev/github.com/ipfs/go-block-format#Block) and [`github.com/ipfs/go-ipld-format#Node`](https://pkg.go.dev/github.com/ipfs/go-ipld-format#Node) interfaces, certain methods, which internally require a re-encode if state has changed, will panic due to the inability to return an error. This issue has been addressed across a number of pull requests. Users are advised to upgrade to version 0.8.1 for a complete set of fixes. Users unable to upgrade may attempt to mitigate this issue by sanitising inputs when allowing user-input to set a new `CidBuilder` on a `ProtoNode` and by sanitising `Tsize` (`Link#Size`) values such that they are a reasonable byte-size for sub-DAGs where derived from user-input.
Metrics
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness Enumeration
Affected Software
| Vendor | Product | Versions |
|---|---|---|
| Protocol | Go-Merkledag | >= 0.4.0, < 0.8.1 |
References
- https://en.wikipedia.org/wiki/Directed_acyclic_graphTechnical Description, Third Party Advisory
- https://github.com/ipfs/go-merkledag/issues/90Patch, Third Party Advisory
- https://github.com/ipfs/go-merkledag/pull/91Patch, Third Party Advisory
- https://github.com/ipfs/go-merkledag/pull/92Patch, Third Party Advisory
- https://github.com/ipfs/go-merkledag/pull/93Patch, Third Party Advisory
- https://github.com/ipfs/go-merkledag/releases/tag/v0.8.0Release Notes, Third Party Advisory
- https://github.com/ipfs/go-merkledag/releases/tag/v0.8.1Release Notes, Third Party Advisory
- https://github.com/ipfs/go-merkledag/security/advisories/GHSA-x39j-h85h-3f46Third Party Advisory
- https://github.com/ipfs/kubo/issues/9297Patch, Third Party Advisory
- https://en.wikipedia.org/wiki/Directed_acyclic_graphTechnical Description, Third Party Advisory
- https://github.com/ipfs/go-merkledag/issues/90Patch, Third Party Advisory
- https://github.com/ipfs/go-merkledag/pull/91Patch, Third Party Advisory
- https://github.com/ipfs/go-merkledag/pull/92Patch, Third Party Advisory
- https://github.com/ipfs/go-merkledag/pull/93Patch, Third Party Advisory
- https://github.com/ipfs/go-merkledag/releases/tag/v0.8.0Release Notes, Third Party Advisory
- https://github.com/ipfs/go-merkledag/releases/tag/v0.8.1Release Notes, Third Party Advisory
- https://github.com/ipfs/go-merkledag/security/advisories/GHSA-x39j-h85h-3f46Third Party Advisory
- https://github.com/ipfs/kubo/issues/9297Patch, Third Party Advisory
Timeline
- Published
- Last Modified
- Status
- Modified
Frequently Asked Questions
What is CVE-2022-23495?
How severe is CVE-2022-23495?
How do I fix CVE-2022-23495?
How Strix Helps
- How Strix found a critical auth bypass in etcdStrix autonomously discovered a critical authentication bypass in etcd, later designated CVE-2026-33413.
- Autonomous PentestingAI agents that find and validate exploitable vulnerabilities like this one across your applications.
- PR ReviewsPentest every pull request so vulnerable code is caught before it ships to production.
- AI Penetration TestingHow AI-driven penetration testing continuously covers your attack surface.
Related CVEs from 2022
- CVE-2022-2349Rejected reason: DO NOT USE THIS CANDIDATE NUMBER. ConsultID…
- CVE-2022-23490BigBlueButton is an open source web conferencing system. Ver…4.3
- CVE-2022-23491Certifi is a curated collection of Root Certificates for val…7.5
- CVE-2022-23492go-libp2p is the offical libp2p implementation in the Go pro…7.5
- CVE-2022-23493xrdp is an open source project which provides a graphical lo…9.1
- CVE-2022-23494tinymce is an open source rich text editor. A cross-site scr…6.1
- CVE-2022-23496 Yet Another UserAgent Analyzer (Yauaa) is a java library th…7.5
- CVE-2022-23497FreshRSS is a free, self-hostable RSS aggregator. User confi…7.5
- CVE-2022-23498Grafana is an open-source platform for monitoring and observ…8.8
- CVE-2022-23499HTML sanitizer is written in PHP, aiming to provide XSS-safe…6.1
- CVE-2022-2350The Disable User Login WordPress plugin through 1.0.1 does n…5.3
- CVE-2022-23500TYPO3 is an open source PHP based web content management sys…7.5
Are you affected by CVE-2022-23495?
Run a free Strix scan to check your systems for this vulnerability.
Scan your code nowSource: NVD / NIST
