CVE-2022-23495
Summary
| CVE | CVE-2022-23495 |
|---|---|
| State | PUBLIC |
| Assigner | [email protected] |
| Source Priority | CVE Program / NVD first with legacy fallback |
| Published | 2022-12-08 22:15:00 UTC |
| Updated | 2023-11-07 03:44:00 UTC |
| 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. |
Risk And Classification
Problem Types: CWE-252
NVD Known Affected Configurations (CPE 2.3)
| Type | Vendor | Product | Version | Update | Edition | Language |
|---|---|---|---|---|---|---|
| Application | Protocol | Go-merkledag | All | All | All | All |
References
| Reference | Source | Link | Tags |
|---|---|---|---|
| feat: check that the CidBuilder hasher is usable by rvagg · Pull Request #91 · ipfs/go-merkledag · GitHub | MISC | github.com | |
| `(*ProtoNode).RawData` use incorrectly panic instead of returning · Issue #90 · ipfs/go-merkledag · GitHub | MISC | github.com | |
| Directed acyclic graph - Wikipedia | MISC | en.wikipedia.org | |
| ProtoNode may be modified such that common method calls may panic · Advisory · ipfs/go-merkledag · GitHub | MISC | github.com | |
| feat: improve broken cid.Builder testing for CidBuilder by rvagg · Pull Request #93 · ipfs/go-merkledag · GitHub | MISC | github.com | |
| feat: check links on setting and sanitise on encoding by rvagg · Pull Request #92 · ipfs/go-merkledag · GitHub | MISC | github.com | |
| Release v0.8.0 · ipfs/go-merkledag · GitHub | MISC | github.com | |
| `ipfs add` with exotic hash functions panics (the daemon and the client) · Issue #9297 · ipfs/kubo · GitHub | MISC | github.com | |
| Release v0.8.1 · ipfs/go-merkledag · GitHub | MISC | github.com | |
| CVE Program record | CVE.ORG | www.cve.org | canonical |
| NVD vulnerability detail | NVD | nvd.nist.gov | canonical, analysis |
No vendor comments have been submitted for this CVE.
There are currently no legacy QID mappings associated with this CVE.