CVE-2023-22460 (GCVE-0-2023-22460)
Vulnerability from cvelistv5 – Published: 2023-01-04 14:53 – Updated: 2025-03-11 13:34
VLAI?
Summary
go-ipld-prime is an implementation of the InterPlanetary Linked Data (IPLD) spec interfaces, a batteries-included codec implementations of IPLD for CBOR and JSON, and tooling for basic operations on IPLD objects. Encoding data which contains a Bytes kind Node will pass a Bytes token to the JSON encoder which will panic as it doesn't expect to receive Bytes tokens. Such an encode should be treated as an error, as plain JSON should not be able to encode Bytes. This only impacts uses of the `json` codec. `dag-json` is not impacted. Use of `json` as a decoder is not impacted. This issue is fixed in v0.19.0. As a workaround, one may prefer the `dag-json` codec, which has the ability to encode bytes.
Severity ?
7.5 (High)
CWE
- CWE-20 - Improper Input Validation
Assigner
References
| URL | Tags | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| ipld | go-ipld-prime |
Affected:
< 0.19.0
|
{
"containers": {
"adp": [
{
"providerMetadata": {
"dateUpdated": "2024-08-02T10:13:48.278Z",
"orgId": "af854a3a-2127-422b-91ae-364da2661108",
"shortName": "CVE"
},
"references": [
{
"name": "https://github.com/ipld/go-ipld-prime/security/advisories/GHSA-c653-6hhg-9x92",
"tags": [
"x_refsource_CONFIRM",
"x_transferred"
],
"url": "https://github.com/ipld/go-ipld-prime/security/advisories/GHSA-c653-6hhg-9x92"
},
{
"name": "https://github.com/ipld/go-ipld-prime/pull/472",
"tags": [
"x_refsource_MISC",
"x_transferred"
],
"url": "https://github.com/ipld/go-ipld-prime/pull/472"
},
{
"name": "https://github.com/ipld/go-ipld-prime/releases/tag/v0.19.0",
"tags": [
"x_refsource_MISC",
"x_transferred"
],
"url": "https://github.com/ipld/go-ipld-prime/releases/tag/v0.19.0"
}
],
"title": "CVE Program Container"
},
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2023-22460",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2025-03-11T13:34:45.868105Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2025-03-11T13:34:55.463Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"product": "go-ipld-prime",
"vendor": "ipld",
"versions": [
{
"status": "affected",
"version": "\u003c 0.19.0"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "go-ipld-prime is an implementation of the InterPlanetary Linked Data (IPLD) spec interfaces, a batteries-included codec implementations of IPLD for CBOR and JSON, and tooling for basic operations on IPLD objects. Encoding data which contains a Bytes kind Node will pass a Bytes token to the JSON encoder which will panic as it doesn\u0027t expect to receive Bytes tokens. Such an encode should be treated as an error, as plain JSON should not be able to encode Bytes. This only impacts uses of the `json` codec. `dag-json` is not impacted. Use of `json` as a decoder is not impacted. This issue is fixed in v0.19.0. As a workaround, one may prefer the `dag-json` codec, which has the ability to encode bytes."
}
],
"metrics": [
{
"cvssV3_1": {
"attackComplexity": "LOW",
"attackVector": "NETWORK",
"availabilityImpact": "HIGH",
"baseScore": 7.5,
"baseSeverity": "HIGH",
"confidentialityImpact": "NONE",
"integrityImpact": "NONE",
"privilegesRequired": "NONE",
"scope": "UNCHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-20",
"description": "CWE-20: Improper Input Validation",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2023-01-04T14:53:19.877Z",
"orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"shortName": "GitHub_M"
},
"references": [
{
"name": "https://github.com/ipld/go-ipld-prime/security/advisories/GHSA-c653-6hhg-9x92",
"tags": [
"x_refsource_CONFIRM"
],
"url": "https://github.com/ipld/go-ipld-prime/security/advisories/GHSA-c653-6hhg-9x92"
},
{
"name": "https://github.com/ipld/go-ipld-prime/pull/472",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/ipld/go-ipld-prime/pull/472"
},
{
"name": "https://github.com/ipld/go-ipld-prime/releases/tag/v0.19.0",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/ipld/go-ipld-prime/releases/tag/v0.19.0"
}
],
"source": {
"advisory": "GHSA-c653-6hhg-9x92",
"discovery": "UNKNOWN"
},
"title": "go-ipld-prime json codec may panic if asked to encode bytes"
}
},
"cveMetadata": {
"assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"assignerShortName": "GitHub_M",
"cveId": "CVE-2023-22460",
"datePublished": "2023-01-04T14:53:19.877Z",
"dateReserved": "2022-12-29T03:00:40.879Z",
"dateUpdated": "2025-03-11T13:34:55.463Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.1",
"vulnerability-lookup:meta": {
"fkie_nvd": {
"configurations": "[{\"nodes\": [{\"operator\": \"OR\", \"negate\": false, \"cpeMatch\": [{\"vulnerable\": true, \"criteria\": \"cpe:2.3:a:protocol:go-ipld-prime:*:*:*:*:*:go:*:*\", \"versionEndExcluding\": \"0.19.0\", \"matchCriteriaId\": \"75FFBC2F-60A8-4C3E-8F3D-EEBA466274D5\"}]}]}]",
"descriptions": "[{\"lang\": \"en\", \"value\": \"go-ipld-prime is an implementation of the InterPlanetary Linked Data (IPLD) spec interfaces, a batteries-included codec implementations of IPLD for CBOR and JSON, and tooling for basic operations on IPLD objects. Encoding data which contains a Bytes kind Node will pass a Bytes token to the JSON encoder which will panic as it doesn\u0027t expect to receive Bytes tokens. Such an encode should be treated as an error, as plain JSON should not be able to encode Bytes. This only impacts uses of the `json` codec. `dag-json` is not impacted. Use of `json` as a decoder is not impacted. This issue is fixed in v0.19.0. As a workaround, one may prefer the `dag-json` codec, which has the ability to encode bytes.\"}, {\"lang\": \"es\", \"value\": \"go-ipld-prime es una implementaci\\u00f3n de las interfaces de especificaciones de datos vinculados interplanetarios (IPLD), que incluye implementaciones de c\\u00f3dec de IPLD para CBOR y JSON y herramientas para operaciones b\\u00e1sicas en objetos IPLD. La codificaci\\u00f3n de datos que contiene un nodo de tipo Bytes pasar\\u00e1 un token de Bytes al codificador JSON, lo que entrar\\u00e1 en p\\u00e1nico porque no espera recibir tokens de Bytes. Dicha codificaci\\u00f3n debe tratarse como un error, ya que JSON simple no deber\\u00eda poder codificar bytes. Esto solo afecta los usos del c\\u00f3dec \\\"json\\\". `dag-json` no se ve afectado. El uso de `json` como decodificador no se ve afectado. Este problema se solucion\\u00f3 en v0.19.0. Como workaround, se puede preferir el c\\u00f3dec `dag-json`, que tiene la capacidad de codificar bytes.\"}]",
"id": "CVE-2023-22460",
"lastModified": "2024-11-21T07:44:50.930",
"metrics": "{\"cvssMetricV31\": [{\"source\": \"security-advisories@github.com\", \"type\": \"Secondary\", \"cvssData\": {\"version\": \"3.1\", \"vectorString\": \"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H\", \"baseScore\": 7.5, \"baseSeverity\": \"HIGH\", \"attackVector\": \"NETWORK\", \"attackComplexity\": \"LOW\", \"privilegesRequired\": \"NONE\", \"userInteraction\": \"NONE\", \"scope\": \"UNCHANGED\", \"confidentialityImpact\": \"NONE\", \"integrityImpact\": \"NONE\", \"availabilityImpact\": \"HIGH\"}, \"exploitabilityScore\": 3.9, \"impactScore\": 3.6}, {\"source\": \"nvd@nist.gov\", \"type\": \"Primary\", \"cvssData\": {\"version\": \"3.1\", \"vectorString\": \"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H\", \"baseScore\": 7.5, \"baseSeverity\": \"HIGH\", \"attackVector\": \"NETWORK\", \"attackComplexity\": \"LOW\", \"privilegesRequired\": \"NONE\", \"userInteraction\": \"NONE\", \"scope\": \"UNCHANGED\", \"confidentialityImpact\": \"NONE\", \"integrityImpact\": \"NONE\", \"availabilityImpact\": \"HIGH\"}, \"exploitabilityScore\": 3.9, \"impactScore\": 3.6}]}",
"published": "2023-01-04T15:15:09.437",
"references": "[{\"url\": \"https://github.com/ipld/go-ipld-prime/pull/472\", \"source\": \"security-advisories@github.com\", \"tags\": [\"Patch\", \"Third Party Advisory\"]}, {\"url\": \"https://github.com/ipld/go-ipld-prime/releases/tag/v0.19.0\", \"source\": \"security-advisories@github.com\", \"tags\": [\"Release Notes\", \"Third Party Advisory\"]}, {\"url\": \"https://github.com/ipld/go-ipld-prime/security/advisories/GHSA-c653-6hhg-9x92\", \"source\": \"security-advisories@github.com\", \"tags\": [\"Third Party Advisory\"]}, {\"url\": \"https://github.com/ipld/go-ipld-prime/pull/472\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\", \"tags\": [\"Patch\", \"Third Party Advisory\"]}, {\"url\": \"https://github.com/ipld/go-ipld-prime/releases/tag/v0.19.0\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\", \"tags\": [\"Release Notes\", \"Third Party Advisory\"]}, {\"url\": \"https://github.com/ipld/go-ipld-prime/security/advisories/GHSA-c653-6hhg-9x92\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\", \"tags\": [\"Third Party Advisory\"]}]",
"sourceIdentifier": "security-advisories@github.com",
"vulnStatus": "Modified",
"weaknesses": "[{\"source\": \"security-advisories@github.com\", \"type\": \"Primary\", \"description\": [{\"lang\": \"en\", \"value\": \"CWE-20\"}]}]"
},
"nvd": "{\"cve\":{\"id\":\"CVE-2023-22460\",\"sourceIdentifier\":\"security-advisories@github.com\",\"published\":\"2023-01-04T15:15:09.437\",\"lastModified\":\"2024-11-21T07:44:50.930\",\"vulnStatus\":\"Modified\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"go-ipld-prime is an implementation of the InterPlanetary Linked Data (IPLD) spec interfaces, a batteries-included codec implementations of IPLD for CBOR and JSON, and tooling for basic operations on IPLD objects. Encoding data which contains a Bytes kind Node will pass a Bytes token to the JSON encoder which will panic as it doesn\u0027t expect to receive Bytes tokens. Such an encode should be treated as an error, as plain JSON should not be able to encode Bytes. This only impacts uses of the `json` codec. `dag-json` is not impacted. Use of `json` as a decoder is not impacted. This issue is fixed in v0.19.0. As a workaround, one may prefer the `dag-json` codec, which has the ability to encode bytes.\"},{\"lang\":\"es\",\"value\":\"go-ipld-prime es una implementaci\u00f3n de las interfaces de especificaciones de datos vinculados interplanetarios (IPLD), que incluye implementaciones de c\u00f3dec de IPLD para CBOR y JSON y herramientas para operaciones b\u00e1sicas en objetos IPLD. La codificaci\u00f3n de datos que contiene un nodo de tipo Bytes pasar\u00e1 un token de Bytes al codificador JSON, lo que entrar\u00e1 en p\u00e1nico porque no espera recibir tokens de Bytes. Dicha codificaci\u00f3n debe tratarse como un error, ya que JSON simple no deber\u00eda poder codificar bytes. Esto solo afecta los usos del c\u00f3dec \\\"json\\\". `dag-json` no se ve afectado. El uso de `json` como decodificador no se ve afectado. Este problema se solucion\u00f3 en v0.19.0. Como workaround, se puede preferir el c\u00f3dec `dag-json`, que tiene la capacidad de codificar bytes.\"}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"security-advisories@github.com\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H\",\"baseScore\":7.5,\"baseSeverity\":\"HIGH\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"NONE\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":3.9,\"impactScore\":3.6},{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H\",\"baseScore\":7.5,\"baseSeverity\":\"HIGH\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"NONE\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":3.9,\"impactScore\":3.6}]},\"weaknesses\":[{\"source\":\"security-advisories@github.com\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-20\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:a:protocol:go-ipld-prime:*:*:*:*:*:go:*:*\",\"versionEndExcluding\":\"0.19.0\",\"matchCriteriaId\":\"75FFBC2F-60A8-4C3E-8F3D-EEBA466274D5\"}]}]}],\"references\":[{\"url\":\"https://github.com/ipld/go-ipld-prime/pull/472\",\"source\":\"security-advisories@github.com\",\"tags\":[\"Patch\",\"Third Party Advisory\"]},{\"url\":\"https://github.com/ipld/go-ipld-prime/releases/tag/v0.19.0\",\"source\":\"security-advisories@github.com\",\"tags\":[\"Release Notes\",\"Third Party Advisory\"]},{\"url\":\"https://github.com/ipld/go-ipld-prime/security/advisories/GHSA-c653-6hhg-9x92\",\"source\":\"security-advisories@github.com\",\"tags\":[\"Third Party Advisory\"]},{\"url\":\"https://github.com/ipld/go-ipld-prime/pull/472\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\",\"Third Party Advisory\"]},{\"url\":\"https://github.com/ipld/go-ipld-prime/releases/tag/v0.19.0\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Release Notes\",\"Third Party Advisory\"]},{\"url\":\"https://github.com/ipld/go-ipld-prime/security/advisories/GHSA-c653-6hhg-9x92\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Third Party Advisory\"]}]}}",
"vulnrichment": {
"containers": "{\"cna\": {\"title\": \"go-ipld-prime json codec may panic if asked to encode bytes\", \"problemTypes\": [{\"descriptions\": [{\"cweId\": \"CWE-20\", \"lang\": \"en\", \"description\": \"CWE-20: Improper Input Validation\", \"type\": \"CWE\"}]}], \"metrics\": [{\"cvssV3_1\": {\"attackComplexity\": \"LOW\", \"attackVector\": \"NETWORK\", \"availabilityImpact\": \"HIGH\", \"baseScore\": 7.5, \"baseSeverity\": \"HIGH\", \"confidentialityImpact\": \"NONE\", \"integrityImpact\": \"NONE\", \"privilegesRequired\": \"NONE\", \"scope\": \"UNCHANGED\", \"userInteraction\": \"NONE\", \"vectorString\": \"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H\", \"version\": \"3.1\"}}], \"references\": [{\"name\": \"https://github.com/ipld/go-ipld-prime/security/advisories/GHSA-c653-6hhg-9x92\", \"tags\": [\"x_refsource_CONFIRM\"], \"url\": \"https://github.com/ipld/go-ipld-prime/security/advisories/GHSA-c653-6hhg-9x92\"}, {\"name\": \"https://github.com/ipld/go-ipld-prime/pull/472\", \"tags\": [\"x_refsource_MISC\"], \"url\": \"https://github.com/ipld/go-ipld-prime/pull/472\"}, {\"name\": \"https://github.com/ipld/go-ipld-prime/releases/tag/v0.19.0\", \"tags\": [\"x_refsource_MISC\"], \"url\": \"https://github.com/ipld/go-ipld-prime/releases/tag/v0.19.0\"}], \"affected\": [{\"vendor\": \"ipld\", \"product\": \"go-ipld-prime\", \"versions\": [{\"version\": \"\u003c 0.19.0\", \"status\": \"affected\"}]}], \"providerMetadata\": {\"orgId\": \"a0819718-46f1-4df5-94e2-005712e83aaa\", \"shortName\": \"GitHub_M\", \"dateUpdated\": \"2023-01-04T14:53:19.877Z\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"go-ipld-prime is an implementation of the InterPlanetary Linked Data (IPLD) spec interfaces, a batteries-included codec implementations of IPLD for CBOR and JSON, and tooling for basic operations on IPLD objects. Encoding data which contains a Bytes kind Node will pass a Bytes token to the JSON encoder which will panic as it doesn\u0027t expect to receive Bytes tokens. Such an encode should be treated as an error, as plain JSON should not be able to encode Bytes. This only impacts uses of the `json` codec. `dag-json` is not impacted. Use of `json` as a decoder is not impacted. This issue is fixed in v0.19.0. As a workaround, one may prefer the `dag-json` codec, which has the ability to encode bytes.\"}], \"source\": {\"advisory\": \"GHSA-c653-6hhg-9x92\", \"discovery\": \"UNKNOWN\"}}, \"adp\": [{\"providerMetadata\": {\"orgId\": \"af854a3a-2127-422b-91ae-364da2661108\", \"shortName\": \"CVE\", \"dateUpdated\": \"2024-08-02T10:13:48.278Z\"}, \"title\": \"CVE Program Container\", \"references\": [{\"name\": \"https://github.com/ipld/go-ipld-prime/security/advisories/GHSA-c653-6hhg-9x92\", \"tags\": [\"x_refsource_CONFIRM\", \"x_transferred\"], \"url\": \"https://github.com/ipld/go-ipld-prime/security/advisories/GHSA-c653-6hhg-9x92\"}, {\"name\": \"https://github.com/ipld/go-ipld-prime/pull/472\", \"tags\": [\"x_refsource_MISC\", \"x_transferred\"], \"url\": \"https://github.com/ipld/go-ipld-prime/pull/472\"}, {\"name\": \"https://github.com/ipld/go-ipld-prime/releases/tag/v0.19.0\", \"tags\": [\"x_refsource_MISC\", \"x_transferred\"], \"url\": \"https://github.com/ipld/go-ipld-prime/releases/tag/v0.19.0\"}]}, {\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2023-22460\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"yes\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2025-03-11T13:34:45.868105Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2025-03-11T13:34:51.075Z\"}}]}",
"cveMetadata": "{\"cveId\": \"CVE-2023-22460\", \"assignerOrgId\": \"a0819718-46f1-4df5-94e2-005712e83aaa\", \"state\": \"PUBLISHED\", \"assignerShortName\": \"GitHub_M\", \"dateReserved\": \"2022-12-29T03:00:40.879Z\", \"datePublished\": \"2023-01-04T14:53:19.877Z\", \"dateUpdated\": \"2025-03-11T13:34:55.463Z\"}",
"dataType": "CVE_RECORD",
"dataVersion": "5.1"
}
}
}
Loading…
Loading…
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
Loading…