Search
Find a vulnerability
Search criteria
3 vulnerabilities by yuzutech
CVE-2026-102356 (GCVE-0-2026-102356)
Vulnerability from cvelistv5 – Published: 2026-11-06 17:38 – Updated: 2026-11-09 22:44
VLAI
EPSS
VEX
Title
Kroki Mermaid companion SSRF via flowchart image URLs
Summary
Kroki creates diagrams from textual descriptions. From 0.26.0 until 0.31.2, the optional Mermaid companion's mermaid/src/worker.js renders attacker-controlled flowchart image nodes in headless Chromium without a network request policy, even when KROKI_SAFE_MODE is set to secure. An actor who can submit Mermaid source and satisfy any authentication or authorization configured by the deployment can cause the companion to issue HTTP or HTTPS GET requests when requesting PNG output. Exploitation requires the Mermaid companion, PNG rendering through its headless Chromium process, a diagram-submission path available to the actor, and network reachability from the companion to the target. The demonstrated impact is limited to blind request reachability and possible state-changing GET endpoints; response exfiltration, cloud metadata access, port scanning, and access beyond the companion's network reachability are not established. This issue is fixed in version 0.31.2.
Severity
5 (Medium)
SSVC
Exploitation: none
Automatable: no
Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-11-09 22:34 UTC
CWE
- CWE-918 - Server-Side Request Forgery (SSRF)
Assigner
GitHub_M
CNA
References
3 references
| URL | Tags |
|---|---|
| https://github.com/yuzutech/kroki/security/adviso… | x_refsource_CONFIRM |
| https://github.com/yuzutech/kroki/commit/428ea380… | x_refsource_MISC |
| https://github.com/yuzutech/kroki/releases/tag/v0.31.2 | x_refsource_MISC |
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-102356",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-11-09T22:34:57.248729Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-11-09T22:44:38.557Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"product": "kroki",
"vendor": "yuzutech",
"versions": [
{
"status": "affected",
"version": "\u003e= 0.26.0, \u003c 0.31.2"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "Kroki creates diagrams from textual descriptions. From 0.26.0 until 0.31.2, the optional Mermaid companion\u0027s mermaid/src/worker.js renders attacker-controlled flowchart image nodes in headless Chromium without a network request policy, even when KROKI_SAFE_MODE is set to secure. An actor who can submit Mermaid source and satisfy any authentication or authorization configured by the deployment can cause the companion to issue HTTP or HTTPS GET requests when requesting PNG output. Exploitation requires the Mermaid companion, PNG rendering through its headless Chromium process, a diagram-submission path available to the actor, and network reachability from the companion to the target. The demonstrated impact is limited to blind request reachability and possible state-changing GET endpoints; response exfiltration, cloud metadata access, port scanning, and access beyond the companion\u0027s network reachability are not established. This issue is fixed in version 0.31.2."
}
],
"metrics": [
{
"cvssV3_1": {
"attackComplexity": "LOW",
"attackVector": "NETWORK",
"availabilityImpact": "NONE",
"baseScore": 5,
"baseSeverity": "MEDIUM",
"confidentialityImpact": "LOW",
"integrityImpact": "NONE",
"privilegesRequired": "LOW",
"scope": "CHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:N",
"version": "3.1"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-918",
"description": "CWE-918: Server-Side Request Forgery (SSRF)",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-11-06T17:38:49.280Z",
"orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"shortName": "GitHub_M"
},
"references": [
{
"name": "https://github.com/yuzutech/kroki/security/advisories/GHSA-px99-rjv4-49g8",
"tags": [
"x_refsource_CONFIRM"
],
"url": "https://github.com/yuzutech/kroki/security/advisories/GHSA-px99-rjv4-49g8"
},
{
"name": "https://github.com/yuzutech/kroki/commit/428ea380bc7db9da5c7947f908851c8461d51f82",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/yuzutech/kroki/commit/428ea380bc7db9da5c7947f908851c8461d51f82"
},
{
"name": "https://github.com/yuzutech/kroki/releases/tag/v0.31.2",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/yuzutech/kroki/releases/tag/v0.31.2"
}
],
"source": {
"advisory": "GHSA-px99-rjv4-49g8",
"discovery": "UNKNOWN"
},
"title": "Kroki Mermaid companion SSRF via flowchart image URLs"
}
},
"cveMetadata": {
"assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"assignerShortName": "GitHub_M",
"cveId": "CVE-2026-102356",
"datePublished": "2026-11-06T17:38:49.280Z",
"dateReserved": "2026-09-28T22:38:42.255Z",
"dateUpdated": "2026-11-09T22:44:38.557Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-102359 (GCVE-0-2026-102359)
Vulnerability from cvelistv5 – Published: 2026-11-06 17:36 – Updated: 2026-11-06 17:36
VLAI
EPSS
VEX
Title
Kroki: TikZ Secure Mode Local File Read via LaTeX File I/O Primitives
Summary
Kroki creates diagrams from textual descriptions. Prior to 0.31.2, the TikZ backend's tikz/tikz2svg guard used when KROKI_SAFE_MODE is enabled blocks only \verbatiminput while allowing native TeX file-read primitives including \openin, \read, \input, and \include. TeX Live's permissive openin_any setting remains active, so an unauthenticated actor can submit crafted LaTeX to POST /tikz/svg or the generic diagram API and cause the renderer to read any file accessible to the Kroki container user. The file contents are rendered into the returned SVG, which may disclose mounted secrets, configuration data, credentials, private keys, or process environment data. The -no-shell-escape option prevents shell execution but does not restrict these native file operations. This issue is fixed in version 0.31.2.
Severity
7.5 (High)
CWE
- CWE-22 - Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')
Assigner
GitHub_M
CNA
References
3 references
| URL | Tags |
|---|---|
| https://github.com/yuzutech/kroki/security/adviso… | x_refsource_CONFIRM |
| https://github.com/yuzutech/kroki/commit/9108ab5b… | x_refsource_MISC |
| https://github.com/yuzutech/kroki/releases/tag/v0.31.2 | x_refsource_MISC |
{
"containers": {
"cna": {
"affected": [
{
"product": "kroki",
"vendor": "yuzutech",
"versions": [
{
"status": "affected",
"version": "\u003c 0.31.2"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "Kroki creates diagrams from textual descriptions. Prior to 0.31.2, the TikZ backend\u0027s tikz/tikz2svg guard used when KROKI_SAFE_MODE is enabled blocks only \\verbatiminput while allowing native TeX file-read primitives including \\openin, \\read, \\input, and \\include. TeX Live\u0027s permissive openin_any setting remains active, so an unauthenticated actor can submit crafted LaTeX to POST /tikz/svg or the generic diagram API and cause the renderer to read any file accessible to the Kroki container user. The file contents are rendered into the returned SVG, which may disclose mounted secrets, configuration data, credentials, private keys, or process environment data. The -no-shell-escape option prevents shell execution but does not restrict these native file operations. This issue is fixed in version 0.31.2."
}
],
"metrics": [
{
"cvssV3_1": {
"attackComplexity": "LOW",
"attackVector": "NETWORK",
"availabilityImpact": "NONE",
"baseScore": 7.5,
"baseSeverity": "HIGH",
"confidentialityImpact": "HIGH",
"integrityImpact": "NONE",
"privilegesRequired": "NONE",
"scope": "UNCHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N",
"version": "3.1"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-22",
"description": "CWE-22: Improper Limitation of a Pathname to a Restricted Directory (\u0027Path Traversal\u0027)",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-11-06T17:36:09.840Z",
"orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"shortName": "GitHub_M"
},
"references": [
{
"name": "https://github.com/yuzutech/kroki/security/advisories/GHSA-r54f-fq6c-53vw",
"tags": [
"x_refsource_CONFIRM"
],
"url": "https://github.com/yuzutech/kroki/security/advisories/GHSA-r54f-fq6c-53vw"
},
{
"name": "https://github.com/yuzutech/kroki/commit/9108ab5b429b9dc82b76432ccf40d4d7eeba1b30",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/yuzutech/kroki/commit/9108ab5b429b9dc82b76432ccf40d4d7eeba1b30"
},
{
"name": "https://github.com/yuzutech/kroki/releases/tag/v0.31.2",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/yuzutech/kroki/releases/tag/v0.31.2"
}
],
"source": {
"advisory": "GHSA-r54f-fq6c-53vw",
"discovery": "UNKNOWN"
},
"title": "Kroki: TikZ Secure Mode Local File Read via LaTeX File I/O Primitives"
}
},
"cveMetadata": {
"assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"assignerShortName": "GitHub_M",
"cveId": "CVE-2026-102359",
"datePublished": "2026-11-06T17:36:09.840Z",
"dateReserved": "2026-09-28T22:38:42.255Z",
"dateUpdated": "2026-11-06T17:36:09.840Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2025-14896 (GCVE-0-2025-14896)
Vulnerability from cvelistv5 – Published: 2025-12-18 16:20 – Updated: 2025-12-18 16:49
VLAI
EPSS
VEX
Summary
due to insufficient sanitazation in Vega’s `convert()` function when `safeMode` is enabled and the spec variable is an array. An attacker can craft a malicious Vega diagram specification that will allow them to send requests to any URL, including local file system paths, leading to exposure of sensitive information.
Severity
7.5 (High)
SSVC
Exploitation: none
Automatable: yes
Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2025-12-18 16:49 UTC
CWE
- CWE-552 - Files or Directories Accessible to External Parties
Assigner
snyk
CNA
References
1 reference
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2025-14896",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2025-12-18T16:49:35.844435Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2025-12-18T16:49:46.024Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"product": "kroki",
"vendor": "yuzutech",
"versions": [
{
"lessThan": "*",
"status": "affected",
"version": "0",
"versionType": "semver"
}
]
}
],
"credits": [
{
"lang": "en",
"value": "Catalin Iovita (Snyk Security Research)"
}
],
"descriptions": [
{
"lang": "en",
"value": "due to insufficient sanitazation in Vega\u2019s `convert()` function when `safeMode` is enabled and the spec variable is an array. An attacker can craft a malicious Vega diagram specification that will allow them to send requests to any URL, including local file system paths, leading to exposure of sensitive information."
}
],
"metrics": [
{
"cvssV3_1": {
"attackComplexity": "LOW",
"attackVector": "NETWORK",
"availabilityImpact": "NONE",
"baseScore": 7.5,
"baseSeverity": "HIGH",
"confidentialityImpact": "HIGH",
"exploitCodeMaturity": "NOT_DEFINED",
"integrityImpact": "NONE",
"privilegesRequired": "NONE",
"scope": "UNCHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N",
"version": "3.1"
},
"cvssV4_0": {
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"attackVector": "NETWORK",
"baseScore": 8.7,
"baseSeverity": "HIGH",
"exploitMaturity": "NOT_DEFINED",
"privilegesRequired": "NONE",
"subAvailabilityImpact": "NONE",
"subConfidentialityImpact": "NONE",
"subIntegrityImpact": "NONE",
"userInteraction": "NONE",
"vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N",
"version": "4.0",
"vulnAvailabilityImpact": "NONE",
"vulnConfidentialityImpact": "HIGH",
"vulnIntegrityImpact": "NONE"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-552",
"description": "Files or Directories Accessible to External Parties",
"lang": "en"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2025-12-18T16:20:15.005Z",
"orgId": "bae035ff-b466-4ff4-94d0-fc9efd9e1730",
"shortName": "snyk"
},
"references": [
{
"url": "https://github.com/yuzutech/kroki/commit/f31093cd8a0a1d6999c43d560f62d1e82d59c77e"
}
]
}
},
"cveMetadata": {
"assignerOrgId": "bae035ff-b466-4ff4-94d0-fc9efd9e1730",
"assignerShortName": "snyk",
"cveId": "CVE-2025-14896",
"datePublished": "2025-12-18T16:20:15.005Z",
"dateReserved": "2025-12-18T16:19:38.828Z",
"dateUpdated": "2025-12-18T16:49:46.024Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}