@blamejs/exceptd-skills 0.13.115 → 0.13.117
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/README.md +1 -1
- package/data/_indexes/_meta.json +9 -9
- package/data/_indexes/activity-feed.json +3 -3
- package/data/_indexes/catalog-summaries.json +3 -3
- package/data/_indexes/chains.json +396 -0
- package/data/_indexes/frequency.json +1 -0
- package/data/attack-techniques.json +11 -5
- package/data/cve-catalog.json +216 -1
- package/data/cwe-catalog.json +35 -2
- package/data/framework-control-gaps.json +29 -13
- package/data/zeroday-lessons.json +100 -0
- package/manifest.json +44 -44
- package/package.json +1 -1
- package/sbom.cdx.json +24 -24
package/data/cve-catalog.json
CHANGED
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"ai_discovery_methodology": {
|
|
56
56
|
"field_added": "2026-05-15",
|
|
57
57
|
"agents_md_target": "Hard Rule #7 — '41% of 2025 zero-days were AI-discovered'. Catalog target rate floor: 0.40.",
|
|
58
|
-
"current_rate": 0.
|
|
58
|
+
"current_rate": 0.029,
|
|
59
59
|
"current_floor_enforced_by_test": 0.029,
|
|
60
60
|
"ladder_to_target": [
|
|
61
61
|
0.029,
|
|
@@ -39121,5 +39121,220 @@
|
|
|
39121
39121
|
"_auto_imported": true,
|
|
39122
39122
|
"_intake_method": "v0.13.17-bulk-cisa-kev-import",
|
|
39123
39123
|
"_kev_short_description": "Microsoft Windows Common Log File System (CLFS) Driver contains a use-after-free vulnerability that allows an authorized attacker to elevate privileges locally."
|
|
39124
|
+
},
|
|
39125
|
+
"CVE-2024-12450": {
|
|
39126
|
+
"name": "RAGFlow web_crawl Full-Read SSRF + Arbitrary File Read",
|
|
39127
|
+
"type": "Server-Side Request Forgery",
|
|
39128
|
+
"cvss_score": 9.8,
|
|
39129
|
+
"cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
|
|
39130
|
+
"cvss_note": "NVD CVSS v3.1 base 9.8 (CRITICAL). The huntr CNA (security@huntr.dev) scored only the SSRF read at v3.0 6.5 (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N); NVD re-scored 9.8 for the full chain: RAGFlow's `web_crawl` (document_app.py) does not filter the URL, so it is a full-read SSRF AND lacks a file:// scheme restriction (arbitrary server file read) AND runs an outdated headless Chromium with the sandbox disabled (V8 exploitation can escalate to remote code execution). The PR differs between sources (NVD PR:N / huntr PR:L); both agree AV:N/AC:L.",
|
|
39131
|
+
"cisa_kev": false,
|
|
39132
|
+
"poc_available": true,
|
|
39133
|
+
"poc_description": "Documented in the huntr bounty report (https://huntr.com/bounties/da06360c-87c3-4ba9-be67-29f6eff9d44a): the web_crawl URL parameter is pointed at an internal address / file:// path and the content is returned via the generated PDF.",
|
|
39134
|
+
"ai_discovered": false,
|
|
39135
|
+
"ai_discovery_source": "human_researcher",
|
|
39136
|
+
"ai_discovery_notes": "Disclosed via huntr (CNA security@huntr.dev) and enriched by NVD. The abused surface is RAGFlow (infiniflow/ragflow), a widely deployed open-source Retrieval-Augmented-Generation engine.",
|
|
39137
|
+
"ai_assisted_weaponization": false,
|
|
39138
|
+
"ai_assisted_notes": "No AI-assisted weaponization; the flaw is an unvalidated server-side fetch (SSRF) plus an unsandboxed headless browser in a RAG ingestion path.",
|
|
39139
|
+
"active_exploitation": "none",
|
|
39140
|
+
"active_exploitation_notes": "huntr/NVD advisory disclosure with a coordinated fix; no confirmed in-the-wild exploitation reported as of curation, and the CVE is not in CISA KEV (verified against the live catalog).",
|
|
39141
|
+
"affected": "RAGFlow (infiniflow/ragflow) before 0.14.0 (reported against 0.12.0).",
|
|
39142
|
+
"affected_versions": [
|
|
39143
|
+
"RAGFlow < 0.14.0"
|
|
39144
|
+
],
|
|
39145
|
+
"vector": "RAGFlow's web_crawl function in document_app.py does not filter the supplied URL, so an attacker performs a full-read SSRF against internal network addresses, reads arbitrary local files via the file:// scheme, and reaches an outdated headless Chromium run with the sandbox disabled - exposing it to known V8 exploits that can escalate to remote code execution (CWE-918 SSRF / CWE-77).",
|
|
39146
|
+
"complexity": "low",
|
|
39147
|
+
"complexity_notes": "AV:N / AC:L across both NVD and huntr. NVD scores it PR:N (the crawl is reachable without privileges); huntr scored PR:L (a low-privileged user triggers the crawl). Either way no user interaction.",
|
|
39148
|
+
"patch_available": true,
|
|
39149
|
+
"patch_required_reboot": false,
|
|
39150
|
+
"live_patch_available": false,
|
|
39151
|
+
"live_patch_tools": [],
|
|
39152
|
+
"live_patch_notes": "Remediation is upgrading to 0.14.0 or later (fix commit 3faae0b2c2f8a26233ee1442ba04874b3406f6e9); redeploy the container, no host reboot.",
|
|
39153
|
+
"vendor_update_paths": [
|
|
39154
|
+
"Upgrade RAGFlow to 0.14.0 or later. Validate and allowlist every URL the web_crawl / ingestion path fetches: reject private, link-local, and cloud-metadata (169.254.169.254) addresses, reject file:// and non-HTTP schemes, and run the headless browser sandboxed."
|
|
39155
|
+
],
|
|
39156
|
+
"framework_control_gaps": {
|
|
39157
|
+
"NIST-800-53-SC-7": "Boundary protection does not treat the RAG engine's server-side crawl as an egress that can reach internal services.",
|
|
39158
|
+
"NIST-800-53-SI-10": "No input validation is applied to the user-supplied crawl URL before the server fetches it (CWE-918 / CWE-77).",
|
|
39159
|
+
"ISO-27001-2022-A.8.21": "Security of network services does not constrain the destinations the RAG crawler may reach.",
|
|
39160
|
+
"NIS2-Art21-network-security": "Article 21 network-security measures do not model an AI ingestion crawler as an SSRF pivot into the internal network.",
|
|
39161
|
+
"DORA-Art-9": "ICT protection measures do not model a RAG engine's server-side fetch as an ICT-risk egress.",
|
|
39162
|
+
"UK-CAF-B4": "System security objective has no objective for destination validation on AI-pipeline server-side fetches.",
|
|
39163
|
+
"AU-ISM-1546": "Patch-application control does not single out RAG / AI-pipeline platforms.",
|
|
39164
|
+
"ALL-AI-PIPELINE-INTEGRITY": "No framework treats an AI data-pipeline's server-side fetch as an egress that must validate and allowlist destinations."
|
|
39165
|
+
},
|
|
39166
|
+
"atlas_refs": [
|
|
39167
|
+
"AML.T0049"
|
|
39168
|
+
],
|
|
39169
|
+
"attack_refs": [
|
|
39170
|
+
"T1190",
|
|
39171
|
+
"T1213",
|
|
39172
|
+
"T1552"
|
|
39173
|
+
],
|
|
39174
|
+
"rwep_score": 31,
|
|
39175
|
+
"rwep_factors": {
|
|
39176
|
+
"cisa_kev": 0,
|
|
39177
|
+
"poc_available": 20,
|
|
39178
|
+
"ai_factor": 0,
|
|
39179
|
+
"active_exploitation": 0,
|
|
39180
|
+
"blast_radius": 26,
|
|
39181
|
+
"patch_available": -15,
|
|
39182
|
+
"live_patch_available": 0,
|
|
39183
|
+
"reboot_required": 0
|
|
39184
|
+
},
|
|
39185
|
+
"rwep_notes": "Moderate-high (RWEP 31, \"patch promptly\" band per lib/scoring.js). Not KEV (verified), no confirmed in-the-wild exploitation, patched at 0.14.0 (Hard Rule #3): poc_available=20 + blast_radius=26 (full-read SSRF + arbitrary file read + potential RCE via an unsandboxed headless browser in a widely deployed RAG engine), minus patch_available 15.",
|
|
39186
|
+
"epss_score": 0.00984,
|
|
39187
|
+
"epss_date": "2026-05-26",
|
|
39188
|
+
"epss_note": "FIRST EPSS 0.00984 (77th percentile) as of 2026-05-26.",
|
|
39189
|
+
"epss_source": "https://api.first.org/data/v1/epss?cve=CVE-2024-12450",
|
|
39190
|
+
"cwe_refs": [
|
|
39191
|
+
"CWE-918",
|
|
39192
|
+
"CWE-77"
|
|
39193
|
+
],
|
|
39194
|
+
"iocs": {
|
|
39195
|
+
"behavioral": [
|
|
39196
|
+
"RAGFlow web_crawl requests whose URL parameter targets internal/link-local addresses or 169.254.169.254 (cloud metadata).",
|
|
39197
|
+
"RAGFlow web_crawl requests using the file:// scheme to read local server files.",
|
|
39198
|
+
"RAGFlow < 0.14.0 reachable on the network with the document-crawl feature enabled - the exposed precondition."
|
|
39199
|
+
],
|
|
39200
|
+
"_ioc_source_note": "Behavioral signatures anchored to the huntr bounty (https://huntr.com/bounties/da06360c-87c3-4ba9-be67-29f6eff9d44a) and NVD CVE-2024-12450 (CWE-918 / CWE-77)."
|
|
39201
|
+
},
|
|
39202
|
+
"source_verified": "2026-05-26",
|
|
39203
|
+
"verification_sources": [
|
|
39204
|
+
"https://nvd.nist.gov/vuln/detail/CVE-2024-12450",
|
|
39205
|
+
"https://github.com/advisories/GHSA-775f-24cq-qg6p",
|
|
39206
|
+
"https://huntr.com/bounties/da06360c-87c3-4ba9-be67-29f6eff9d44a"
|
|
39207
|
+
],
|
|
39208
|
+
"vendor_advisories": [
|
|
39209
|
+
{
|
|
39210
|
+
"vendor": "huntr",
|
|
39211
|
+
"advisory_id": "CVE-2024-12450",
|
|
39212
|
+
"url": "https://huntr.com/bounties/da06360c-87c3-4ba9-be67-29f6eff9d44a",
|
|
39213
|
+
"severity": "medium",
|
|
39214
|
+
"published_date": "2025-03-20"
|
|
39215
|
+
},
|
|
39216
|
+
{
|
|
39217
|
+
"vendor": "GitHub Advisory Database",
|
|
39218
|
+
"advisory_id": "GHSA-775f-24cq-qg6p",
|
|
39219
|
+
"url": "https://github.com/advisories/GHSA-775f-24cq-qg6p",
|
|
39220
|
+
"severity": "critical",
|
|
39221
|
+
"published_date": "2025-03-20"
|
|
39222
|
+
},
|
|
39223
|
+
{
|
|
39224
|
+
"vendor": "NVD",
|
|
39225
|
+
"advisory_id": "CVE-2024-12450",
|
|
39226
|
+
"url": "https://nvd.nist.gov/vuln/detail/CVE-2024-12450",
|
|
39227
|
+
"severity": "critical",
|
|
39228
|
+
"published_date": "2025-03-20"
|
|
39229
|
+
}
|
|
39230
|
+
],
|
|
39231
|
+
"last_updated": "2026-05-26",
|
|
39232
|
+
"discovery_attribution_note": "Manually curated from NVD CVE-2024-12450 (CVSS v3.1 9.8, CWE-918) + the huntr bounty (CNA, v3.0 6.5). RAGFlow RAG-engine ingestion SSRF + arbitrary file read; reuses the AI-data-pipeline import SSRF control NEW-CTRL-105 (shared with the Dify RemoteFileUploadApi and Label Studio data-pipeline SSRF).",
|
|
39233
|
+
"_auto_imported": false,
|
|
39234
|
+
"_intake_method": "manual-verified-curation",
|
|
39235
|
+
"_kev_short_description": "RAGFlow web_crawl does not filter the supplied URL, yielding full-read SSRF, file:// arbitrary file read, and potential RCE via an unsandboxed headless Chromium (CWE-918 / CWE-77); fixed in 0.14.0."
|
|
39236
|
+
},
|
|
39237
|
+
"CVE-2025-69286": {
|
|
39238
|
+
"name": "RAGFlow Predictable API-Key / Share-Token Account Takeover",
|
|
39239
|
+
"type": "Account Takeover",
|
|
39240
|
+
"cvss_score": 8.9,
|
|
39241
|
+
"cvss_vector": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N",
|
|
39242
|
+
"cvss_note": "GitHub (CNA, security-advisories@github.com) CVSS v4.0 base 8.9; NVD CVSS v3.1 base 9.8 (CRITICAL). RAGFlow generates the API key and the beta (assistant/agent share) token with the same URLSafeTimedSerializer keyed by the tenant_id (a predictable secret) over a timestamp-based UUIDv1, so the two tokens are mutually derivable: an attacker who obtains a shared assistant/agent URL derives the personal API key and takes full control of the owner's account (CWE-340 generation of predictable identifiers).",
|
|
39243
|
+
"cisa_kev": false,
|
|
39244
|
+
"poc_available": true,
|
|
39245
|
+
"poc_description": "The disclosing advisory (https://github.com/infiniflow/ragflow/security/advisories/GHSA-9j5g-g4xm-57w7) details deriving the API key from a shared beta token: both are produced by generate_confirmation_token using tenant_id as the serializer secret and get_uuid() (UUIDv1) as data, enumerable within a small timestamp window.",
|
|
39246
|
+
"ai_discovered": false,
|
|
39247
|
+
"ai_discovery_source": "human_researcher",
|
|
39248
|
+
"ai_discovery_notes": "Disclosed via the GitHub Security Advisory (GHSA-9j5g-g4xm-57w7) and enriched by NVD. The abused surface is RAGFlow (infiniflow/ragflow), a widely deployed open-source Retrieval-Augmented-Generation engine.",
|
|
39249
|
+
"ai_assisted_weaponization": false,
|
|
39250
|
+
"ai_assisted_notes": "No AI-assisted weaponization; the flaw is predictable token generation (insecure key derivation) in a RAG platform's API-key / share-token issuance.",
|
|
39251
|
+
"active_exploitation": "none",
|
|
39252
|
+
"active_exploitation_notes": "GitHub advisory disclosure with a coordinated fix; no confirmed in-the-wild exploitation reported as of curation, and the CVE is not in CISA KEV (verified against the live catalog).",
|
|
39253
|
+
"affected": "RAGFlow (infiniflow/ragflow) before 0.22.0.",
|
|
39254
|
+
"affected_versions": [
|
|
39255
|
+
"RAGFlow < 0.22.0"
|
|
39256
|
+
],
|
|
39257
|
+
"vector": "RAGFlow's API key and beta (assistant/agent share) token are both generated by generate_confirmation_token, which builds a URLSafeTimedSerializer initialized with the tenant_id as the secret_key and uses get_uuid() (a timestamp-based UUIDv1) as the input data with tenant_id as the salt. Because the inputs are predictable and the two tokens are generated nearly simultaneously, they are mutually derivable - an attacker who obtains a shared assistant/agent URL derives the account's personal API key and gains full control (CWE-340).",
|
|
39258
|
+
"complexity": "low",
|
|
39259
|
+
"complexity_notes": "GitHub v4.0 AV:N/AC:L/AT:N/PR:N/UI:N. The practical precondition is obtaining a shared assistant/agent URL (commonly distributed); from it the API key is derivable.",
|
|
39260
|
+
"patch_available": true,
|
|
39261
|
+
"patch_required_reboot": false,
|
|
39262
|
+
"live_patch_available": false,
|
|
39263
|
+
"live_patch_tools": [],
|
|
39264
|
+
"live_patch_notes": "Remediation is upgrading to 0.22.0 or later (fix commit a3bb4aadcc3494fb27f2a9933b4c46df8eb532e6); redeploy the container, no host reboot. Rotate any API keys / share tokens issued by a vulnerable version.",
|
|
39265
|
+
"vendor_update_paths": [
|
|
39266
|
+
"Upgrade RAGFlow to 0.22.0 or later, then rotate all API keys and share/beta tokens issued by the vulnerable version. Generate API keys and share tokens from a CSPRNG (os.urandom / secrets) with an unpredictable per-install server secret - never key the serializer with the tenant_id, never use a timestamp-based UUIDv1 as token material, and never let one token be derivable from another."
|
|
39267
|
+
],
|
|
39268
|
+
"framework_control_gaps": {
|
|
39269
|
+
"NIST-800-53-IA-2": "Identification and authentication is defeated - an attacker derives a valid API key and acts as the account owner.",
|
|
39270
|
+
"NIST-800-53-AC-3": "Access enforcement is bypassed once the derived API key grants full account control.",
|
|
39271
|
+
"ISO-27001-2022-A.8.24": "Use of cryptography is inadequate - tokens are produced by a predictable serializer instead of a CSPRNG, so issued tokens are not unpredictable.",
|
|
39272
|
+
"NIS2-Art21-identity-management": "Article 21 access-control measures do not prevent predictable-token account takeover in AI apps.",
|
|
39273
|
+
"DORA-Art-9": "ICT protection measures do not model predictable token generation in an AI app as an ICT-risk event.",
|
|
39274
|
+
"UK-CAF-B2": "Identity and Access Control objective has no objective for token-generation entropy on AI app-platform APIs.",
|
|
39275
|
+
"AU-ISM-1546": "Patch-application control does not single out RAG / AI-pipeline platforms.",
|
|
39276
|
+
"ALL-AI-PIPELINE-INTEGRITY": "No framework treats an AI app platform's API-key / share-token generation (CSPRNG + unpredictable secret) as an authentication-integrity control."
|
|
39277
|
+
},
|
|
39278
|
+
"atlas_refs": [
|
|
39279
|
+
"AML.T0049"
|
|
39280
|
+
],
|
|
39281
|
+
"attack_refs": [
|
|
39282
|
+
"T1190",
|
|
39283
|
+
"T1078",
|
|
39284
|
+
"T1212"
|
|
39285
|
+
],
|
|
39286
|
+
"rwep_score": 28,
|
|
39287
|
+
"rwep_factors": {
|
|
39288
|
+
"cisa_kev": 0,
|
|
39289
|
+
"poc_available": 20,
|
|
39290
|
+
"ai_factor": 0,
|
|
39291
|
+
"active_exploitation": 0,
|
|
39292
|
+
"blast_radius": 23,
|
|
39293
|
+
"patch_available": -15,
|
|
39294
|
+
"live_patch_available": 0,
|
|
39295
|
+
"reboot_required": 0
|
|
39296
|
+
},
|
|
39297
|
+
"rwep_notes": "Moderate (RWEP 28, \"patch within 30 days\" band per lib/scoring.js). Not KEV (verified), no confirmed in-the-wild exploitation, patched at 0.22.0 (Hard Rule #3): poc_available=20 + blast_radius=23 (account takeover including admin in a widely deployed RAG engine, gated on obtaining a shared assistant/agent URL), minus patch_available 15.",
|
|
39298
|
+
"epss_score": 0.00125,
|
|
39299
|
+
"epss_date": "2026-05-26",
|
|
39300
|
+
"epss_note": "FIRST EPSS 0.00125 (31st percentile) as of 2026-05-26.",
|
|
39301
|
+
"epss_source": "https://api.first.org/data/v1/epss?cve=CVE-2025-69286",
|
|
39302
|
+
"cwe_refs": [
|
|
39303
|
+
"CWE-340"
|
|
39304
|
+
],
|
|
39305
|
+
"iocs": {
|
|
39306
|
+
"behavioral": [
|
|
39307
|
+
"RAGFlow API requests authenticating with API keys that were not issued through the normal create-key flow (derived keys).",
|
|
39308
|
+
"Access to an assistant/agent owner's resources originating from a holder of only the shared assistant/agent URL.",
|
|
39309
|
+
"RAGFlow < 0.22.0 with shared assistant/agent links distributed outside the owner's trust boundary - the exposed precondition."
|
|
39310
|
+
],
|
|
39311
|
+
"_ioc_source_note": "Behavioral signatures anchored to the GitHub Security Advisory (https://github.com/infiniflow/ragflow/security/advisories/GHSA-9j5g-g4xm-57w7) and NVD CVE-2025-69286 (CWE-340)."
|
|
39312
|
+
},
|
|
39313
|
+
"source_verified": "2026-05-26",
|
|
39314
|
+
"verification_sources": [
|
|
39315
|
+
"https://nvd.nist.gov/vuln/detail/CVE-2025-69286",
|
|
39316
|
+
"https://github.com/infiniflow/ragflow/security/advisories/GHSA-9j5g-g4xm-57w7"
|
|
39317
|
+
],
|
|
39318
|
+
"vendor_advisories": [
|
|
39319
|
+
{
|
|
39320
|
+
"vendor": "GitHub Security Advisory",
|
|
39321
|
+
"advisory_id": "GHSA-9j5g-g4xm-57w7",
|
|
39322
|
+
"url": "https://github.com/infiniflow/ragflow/security/advisories/GHSA-9j5g-g4xm-57w7",
|
|
39323
|
+
"severity": "critical",
|
|
39324
|
+
"published_date": "2025-12-31"
|
|
39325
|
+
},
|
|
39326
|
+
{
|
|
39327
|
+
"vendor": "NVD",
|
|
39328
|
+
"advisory_id": "CVE-2025-69286",
|
|
39329
|
+
"url": "https://nvd.nist.gov/vuln/detail/CVE-2025-69286",
|
|
39330
|
+
"severity": "critical",
|
|
39331
|
+
"published_date": "2025-12-31"
|
|
39332
|
+
}
|
|
39333
|
+
],
|
|
39334
|
+
"last_updated": "2026-05-26",
|
|
39335
|
+
"discovery_attribution_note": "Manually curated from NVD CVE-2025-69286 (CVSS v3.1 9.8, CWE-340) + the GitHub Security Advisory GHSA-9j5g-g4xm-57w7 (CNA, CVSS v4.0 8.9). RAGFlow RAG-engine predictable-token account takeover; introduces the AI-app API-token generation-integrity control NEW-CTRL-109.",
|
|
39336
|
+
"_auto_imported": false,
|
|
39337
|
+
"_intake_method": "manual-verified-curation",
|
|
39338
|
+
"_kev_short_description": "RAGFlow generates API keys and share tokens with a predictable serializer keyed by tenant_id over a UUIDv1, so the tokens are mutually derivable and a shared link yields account takeover (CWE-340); fixed in 0.22.0."
|
|
39124
39339
|
}
|
|
39125
39340
|
}
|
package/data/cwe-catalog.json
CHANGED
|
@@ -164,7 +164,8 @@
|
|
|
164
164
|
"CVE-2026-30617",
|
|
165
165
|
"CVE-2026-30624",
|
|
166
166
|
"CVE-2026-30625",
|
|
167
|
-
"MAL-2026-3083"
|
|
167
|
+
"MAL-2026-3083",
|
|
168
|
+
"CVE-2024-12450"
|
|
168
169
|
],
|
|
169
170
|
"framework_controls_partially_addressing": [
|
|
170
171
|
"NIST-800-53-SI-10",
|
|
@@ -1885,7 +1886,8 @@
|
|
|
1885
1886
|
"CVE-2024-6587",
|
|
1886
1887
|
"CVE-2025-25297",
|
|
1887
1888
|
"CVE-2025-56520",
|
|
1888
|
-
"CVE-2025-61884"
|
|
1889
|
+
"CVE-2025-61884",
|
|
1890
|
+
"CVE-2024-12450"
|
|
1889
1891
|
],
|
|
1890
1892
|
"framework_controls_partially_addressing": [
|
|
1891
1893
|
"NIST-800-53-SC-7",
|
|
@@ -4386,5 +4388,36 @@
|
|
|
4386
4388
|
],
|
|
4387
4389
|
"last_verified": "2026-05-19",
|
|
4388
4390
|
"notes": "Added v0.13.19 to back the runc /proc/self/fd container-escape (CVE-2024-21626) cwe_refs entry."
|
|
4391
|
+
},
|
|
4392
|
+
"CWE-340": {
|
|
4393
|
+
"id": "CWE-340",
|
|
4394
|
+
"name": "Generation of Predictable Numbers or Identifiers",
|
|
4395
|
+
"abstraction": "Class",
|
|
4396
|
+
"category": "Cryptography",
|
|
4397
|
+
"description": "The product uses a scheme that generates numbers or identifiers that are more predictable than required (e.g. timestamp-based UUIDv1, a serializer keyed by a guessable secret, sequential ids), so an attacker can predict or derive the value. Child of CWE-330; siblings include CWE-330, -341, -342.",
|
|
4398
|
+
"top_25_rank_2024": null,
|
|
4399
|
+
"top_25_rank_2025": null,
|
|
4400
|
+
"view_memberships": [
|
|
4401
|
+
"CWE-1000",
|
|
4402
|
+
"CWE-310"
|
|
4403
|
+
],
|
|
4404
|
+
"related_attack_patterns_capec": [
|
|
4405
|
+
"CAPEC-59",
|
|
4406
|
+
"CAPEC-112"
|
|
4407
|
+
],
|
|
4408
|
+
"skills_referencing": [],
|
|
4409
|
+
"evidence_cves": [
|
|
4410
|
+
"CVE-2025-69286"
|
|
4411
|
+
],
|
|
4412
|
+
"framework_controls_partially_addressing": [
|
|
4413
|
+
"NIST-800-53-IA-5",
|
|
4414
|
+
"NIST-800-53-SC-13"
|
|
4415
|
+
],
|
|
4416
|
+
"real_requirement": "Generate security-relevant identifiers and tokens (API keys, share/reset tokens, session ids) from an OS CSPRNG with an unpredictable per-install secret; never key a serializer with a tenant/customer id, never use timestamp-based UUIDv1 as token material, and never let one token be derivable from another.",
|
|
4417
|
+
"lag_notes": "Framework controls require 'unpredictable' authenticators in the abstract; codebase-level enforcement that token-generation never uses a predictable secret or timestamp source is absent.",
|
|
4418
|
+
"last_verified": "2026-05-26",
|
|
4419
|
+
"playbooks_referencing": [
|
|
4420
|
+
"identity-sso-compromise"
|
|
4421
|
+
]
|
|
4389
4422
|
}
|
|
4390
4423
|
}
|
|
@@ -116,7 +116,9 @@
|
|
|
116
116
|
"CVE-2026-40933",
|
|
117
117
|
"CVE-2026-41947",
|
|
118
118
|
"CVE-2026-41950",
|
|
119
|
-
"CVE-2026-45829"
|
|
119
|
+
"CVE-2026-45829",
|
|
120
|
+
"CVE-2024-12450",
|
|
121
|
+
"CVE-2025-69286"
|
|
120
122
|
],
|
|
121
123
|
"atlas_refs": [
|
|
122
124
|
"AML.T0018",
|
|
@@ -2308,7 +2310,8 @@
|
|
|
2308
2310
|
"CVE-2025-53767",
|
|
2309
2311
|
"CVE-2025-56520",
|
|
2310
2312
|
"CVE-2026-34159",
|
|
2311
|
-
"CVE-2026-42897"
|
|
2313
|
+
"CVE-2026-42897",
|
|
2314
|
+
"CVE-2024-12450"
|
|
2312
2315
|
],
|
|
2313
2316
|
"atlas_refs": [
|
|
2314
2317
|
"AML.T0096",
|
|
@@ -2422,7 +2425,8 @@
|
|
|
2422
2425
|
"CVE-2026-39884",
|
|
2423
2426
|
"CVE-2026-42208",
|
|
2424
2427
|
"CVE-2026-45829",
|
|
2425
|
-
"CVE-2026-9082"
|
|
2428
|
+
"CVE-2026-9082",
|
|
2429
|
+
"CVE-2024-12450"
|
|
2426
2430
|
],
|
|
2427
2431
|
"atlas_refs": [
|
|
2428
2432
|
"AML.T0053"
|
|
@@ -3890,7 +3894,8 @@
|
|
|
3890
3894
|
"CVE-2026-24207",
|
|
3891
3895
|
"CVE-2026-26190",
|
|
3892
3896
|
"CVE-2026-41947",
|
|
3893
|
-
"CVE-2026-41950"
|
|
3897
|
+
"CVE-2026-41950",
|
|
3898
|
+
"CVE-2025-69286"
|
|
3894
3899
|
],
|
|
3895
3900
|
"atlas_refs": [
|
|
3896
3901
|
"AML.T0010",
|
|
@@ -5201,7 +5206,9 @@
|
|
|
5201
5206
|
"CVE-2026-45829",
|
|
5202
5207
|
"CVE-2026-46300",
|
|
5203
5208
|
"CVE-2026-46333",
|
|
5204
|
-
"CVE-2026-9082"
|
|
5209
|
+
"CVE-2026-9082",
|
|
5210
|
+
"CVE-2024-12450",
|
|
5211
|
+
"CVE-2025-69286"
|
|
5205
5212
|
],
|
|
5206
5213
|
"atlas_refs": [],
|
|
5207
5214
|
"attack_refs": [
|
|
@@ -5250,7 +5257,8 @@
|
|
|
5250
5257
|
"CVE-2026-39987",
|
|
5251
5258
|
"CVE-2026-41947",
|
|
5252
5259
|
"CVE-2026-41950",
|
|
5253
|
-
"CVE-2026-7482"
|
|
5260
|
+
"CVE-2026-7482",
|
|
5261
|
+
"CVE-2025-69286"
|
|
5254
5262
|
],
|
|
5255
5263
|
"atlas_refs": [
|
|
5256
5264
|
"AML.T0051"
|
|
@@ -5552,7 +5560,8 @@
|
|
|
5552
5560
|
"CVE-2026-33017",
|
|
5553
5561
|
"CVE-2026-41947",
|
|
5554
5562
|
"CVE-2026-41950",
|
|
5555
|
-
"CVE-2026-6973"
|
|
5563
|
+
"CVE-2026-6973",
|
|
5564
|
+
"CVE-2025-69286"
|
|
5556
5565
|
],
|
|
5557
5566
|
"atlas_refs": [],
|
|
5558
5567
|
"attack_refs": [
|
|
@@ -5789,7 +5798,8 @@
|
|
|
5789
5798
|
"CVE-2026-46300",
|
|
5790
5799
|
"CVE-2026-46333",
|
|
5791
5800
|
"CVE-2026-9082",
|
|
5792
|
-
"MAL-2026-SHAI-HULUD-OSS"
|
|
5801
|
+
"MAL-2026-SHAI-HULUD-OSS",
|
|
5802
|
+
"CVE-2024-12450"
|
|
5793
5803
|
],
|
|
5794
5804
|
"atlas_refs": [],
|
|
5795
5805
|
"attack_refs": [
|
|
@@ -5912,7 +5922,9 @@
|
|
|
5912
5922
|
"CVE-2026-45829",
|
|
5913
5923
|
"CVE-2026-46300",
|
|
5914
5924
|
"CVE-2026-46333",
|
|
5915
|
-
"CVE-2026-9082"
|
|
5925
|
+
"CVE-2026-9082",
|
|
5926
|
+
"CVE-2024-12450",
|
|
5927
|
+
"CVE-2025-69286"
|
|
5916
5928
|
],
|
|
5917
5929
|
"atlas_refs": [],
|
|
5918
5930
|
"attack_refs": [
|
|
@@ -6220,7 +6232,8 @@
|
|
|
6220
6232
|
"CVE-2026-24207",
|
|
6221
6233
|
"CVE-2026-26190",
|
|
6222
6234
|
"CVE-2026-33017",
|
|
6223
|
-
"CVE-2026-45829"
|
|
6235
|
+
"CVE-2026-45829",
|
|
6236
|
+
"CVE-2025-69286"
|
|
6224
6237
|
],
|
|
6225
6238
|
"atlas_refs": [],
|
|
6226
6239
|
"attack_refs": [
|
|
@@ -6332,7 +6345,8 @@
|
|
|
6332
6345
|
"CVE-2024-21762",
|
|
6333
6346
|
"CVE-2025-25297",
|
|
6334
6347
|
"CVE-2025-56520",
|
|
6335
|
-
"CVE-2026-20182"
|
|
6348
|
+
"CVE-2026-20182",
|
|
6349
|
+
"CVE-2024-12450"
|
|
6336
6350
|
],
|
|
6337
6351
|
"atlas_refs": [],
|
|
6338
6352
|
"attack_refs": [
|
|
@@ -6760,7 +6774,8 @@
|
|
|
6760
6774
|
"opened_at": "2026-05-18",
|
|
6761
6775
|
"evidence_cves": [
|
|
6762
6776
|
"CVE-2025-14847",
|
|
6763
|
-
"CVE-2025-22226"
|
|
6777
|
+
"CVE-2025-22226",
|
|
6778
|
+
"CVE-2025-69286"
|
|
6764
6779
|
],
|
|
6765
6780
|
"theater_test": {
|
|
6766
6781
|
"claim": "We are compliant with A.8.24 (Use of cryptography) because we follow the documented requirement: Annex A.8.24 — defining and implementing rules for the effective use of cryptography, including key management. Anchored on the assumption that correctly-applied transport and at-rest encryption prese",
|
|
@@ -7136,7 +7151,8 @@
|
|
|
7136
7151
|
"opened_at": "2026-05-18",
|
|
7137
7152
|
"evidence_cves": [
|
|
7138
7153
|
"CVE-2025-22224",
|
|
7139
|
-
"CVE-2025-22225"
|
|
7154
|
+
"CVE-2025-22225",
|
|
7155
|
+
"CVE-2024-12450"
|
|
7140
7156
|
],
|
|
7141
7157
|
"theater_test": {
|
|
7142
7158
|
"claim": "We are compliant with A.8.21 (Security of network services) because we follow the documented requirement: Annex A.8.21 — identifying, implementing, and monitoring security mechanisms, service levels, and management requirements for network services. Anchored on segmentation, secure protocols, and service-",
|
|
@@ -17036,5 +17036,105 @@
|
|
|
17036
17036
|
"ai_assist_factor": "none",
|
|
17037
17037
|
"_auto_imported": true,
|
|
17038
17038
|
"_intake_method": "v0.13.17-bulk-cisa-kev-import"
|
|
17039
|
+
},
|
|
17040
|
+
"CVE-2024-12450": {
|
|
17041
|
+
"name": "RAGFlow web_crawl Full-Read SSRF + Arbitrary File Read",
|
|
17042
|
+
"lesson_date": "2026-05-26",
|
|
17043
|
+
"attack_vector": {
|
|
17044
|
+
"description": "RAGFlow's web_crawl function does not filter the supplied URL, so an attacker performs a full-read SSRF against internal addresses, reads local files via file://, and reaches an unsandboxed headless Chromium that can escalate to RCE.",
|
|
17045
|
+
"privileges_required": "none to low (NVD PR:N; huntr PR:L)",
|
|
17046
|
+
"complexity": "low",
|
|
17047
|
+
"ai_factor": "The abused surface is RAGFlow, an open-source Retrieval-Augmented-Generation engine. The lesson: a RAG engine's ingestion crawler is a server-side fetch that must validate and allowlist destinations and run any headless browser sandboxed, or it becomes an SSRF / file-read / RCE pivot."
|
|
17048
|
+
},
|
|
17049
|
+
"framework_coverage": {
|
|
17050
|
+
"NIST-800-53-SC-7": {
|
|
17051
|
+
"covered": true,
|
|
17052
|
+
"adequate": false,
|
|
17053
|
+
"gap": "Boundary protection does not treat the RAG engine's crawl as an egress that can reach internal services."
|
|
17054
|
+
},
|
|
17055
|
+
"NIST-800-53-SI-10": {
|
|
17056
|
+
"covered": true,
|
|
17057
|
+
"adequate": false,
|
|
17058
|
+
"gap": "No input validation is applied to the user-supplied crawl URL before the server fetches it."
|
|
17059
|
+
},
|
|
17060
|
+
"ALL-AI-PIPELINE-INTEGRITY": {
|
|
17061
|
+
"covered": false,
|
|
17062
|
+
"adequate": false,
|
|
17063
|
+
"gap": "No framework treats a RAG engine's server-side fetch as an egress that must validate and allowlist destinations."
|
|
17064
|
+
}
|
|
17065
|
+
},
|
|
17066
|
+
"compliance_exposure_score": {
|
|
17067
|
+
"percent_audit_passing_orgs_still_exposed": 79,
|
|
17068
|
+
"basis": "RAG engines crawl user-supplied URLs for ingestion on trusted-network assumptions; the fetch destination and scheme are not validated and the headless browser is not sandboxed.",
|
|
17069
|
+
"theater_pattern": "ai_data_pipeline_ssrf_trust"
|
|
17070
|
+
},
|
|
17071
|
+
"ai_discovered_zeroday": false,
|
|
17072
|
+
"ai_discovery_source": "human_researcher",
|
|
17073
|
+
"ai_assist_factor": "none",
|
|
17074
|
+
"new_control_requirements": [
|
|
17075
|
+
{
|
|
17076
|
+
"id": "NEW-CTRL-105",
|
|
17077
|
+
"name": "AI-DATA-PIPELINE-IMPORT-SSRF-PROTECTION",
|
|
17078
|
+
"description": "An AI data-pipeline platform that fetches from caller-supplied URLs or endpoints (data import, cloud-storage endpoint configuration, webhook/annotation sources, ingestion crawlers) must validate and allowlist the destination before issuing the request: reject private, link-local, and cloud-metadata addresses (169.254.169.254), reject file:// and non-HTTP schemes, and resolve+pin the host to prevent DNS-rebinding. Run any headless browser sandboxed. Restrict who can configure server-side fetches. The distinguishing test: configure the import/crawl URL to an internal or cloud-metadata address (or a file:// path) on a staging instance and confirm the server refuses the fetch - a platform that issues the request and returns the response is exploitable for SSRF / file read / internal pivot, regardless of authentication posture.",
|
|
17079
|
+
"evidence": "https://huntr.com/bounties/da06360c-87c3-4ba9-be67-29f6eff9d44a",
|
|
17080
|
+
"gap_closes": [
|
|
17081
|
+
"NIST-800-53-SC-7",
|
|
17082
|
+
"NIST-800-53-SI-10",
|
|
17083
|
+
"ALL-AI-PIPELINE-INTEGRITY"
|
|
17084
|
+
]
|
|
17085
|
+
}
|
|
17086
|
+
],
|
|
17087
|
+
"_auto_imported": false,
|
|
17088
|
+
"_intake_method": "manual-verified-curation"
|
|
17089
|
+
},
|
|
17090
|
+
"CVE-2025-69286": {
|
|
17091
|
+
"name": "RAGFlow Predictable API-Key / Share-Token Account Takeover",
|
|
17092
|
+
"lesson_date": "2026-05-26",
|
|
17093
|
+
"attack_vector": {
|
|
17094
|
+
"description": "RAGFlow generates its API key and share/beta token with the same URLSafeTimedSerializer keyed by the tenant_id over a timestamp-based UUIDv1, so the tokens are mutually derivable - a shared assistant/agent URL yields the owner's API key and full account control.",
|
|
17095
|
+
"privileges_required": "none (an attacker who obtains a shared assistant/agent URL)",
|
|
17096
|
+
"complexity": "low",
|
|
17097
|
+
"ai_factor": "The abused surface is RAGFlow, an open-source Retrieval-Augmented-Generation engine. The lesson: an AI app's API keys and share tokens are authentication material that must be generated from a CSPRNG with an unpredictable per-install secret - never derivable from a tenant id, a timestamp, or another token."
|
|
17098
|
+
},
|
|
17099
|
+
"framework_coverage": {
|
|
17100
|
+
"NIST-800-53-IA-5": {
|
|
17101
|
+
"covered": true,
|
|
17102
|
+
"adequate": false,
|
|
17103
|
+
"gap": "Authenticator management does not require API keys / share tokens to be unpredictable and non-derivable."
|
|
17104
|
+
},
|
|
17105
|
+
"NIST-800-53-AC-3": {
|
|
17106
|
+
"covered": true,
|
|
17107
|
+
"adequate": false,
|
|
17108
|
+
"gap": "Access enforcement is bypassed once a derivable API key grants full account control."
|
|
17109
|
+
},
|
|
17110
|
+
"ALL-AI-PIPELINE-INTEGRITY": {
|
|
17111
|
+
"covered": false,
|
|
17112
|
+
"adequate": false,
|
|
17113
|
+
"gap": "No framework treats an AI app platform's token generation (CSPRNG + unpredictable secret) as an authentication-integrity control."
|
|
17114
|
+
}
|
|
17115
|
+
},
|
|
17116
|
+
"compliance_exposure_score": {
|
|
17117
|
+
"percent_audit_passing_orgs_still_exposed": 80,
|
|
17118
|
+
"basis": "AI app platforms issue API keys and share tokens with bespoke serializers seeded by tenant ids and timestamp-based UUIDs; token-generation entropy is rarely audited.",
|
|
17119
|
+
"theater_pattern": "ai_app_predictable_token_generation"
|
|
17120
|
+
},
|
|
17121
|
+
"ai_discovered_zeroday": false,
|
|
17122
|
+
"ai_discovery_source": "human_researcher",
|
|
17123
|
+
"ai_assist_factor": "none",
|
|
17124
|
+
"new_control_requirements": [
|
|
17125
|
+
{
|
|
17126
|
+
"id": "NEW-CTRL-109",
|
|
17127
|
+
"name": "AI-APP-API-TOKEN-GENERATION-INTEGRITY",
|
|
17128
|
+
"description": "An AI application's API keys, share/beta tokens, and session identifiers must be generated from a cryptographically secure RNG (os.urandom / secrets) with an unpredictable per-install server secret. Never key a token serializer with a tenant/customer id, never use a timestamp-based UUIDv1 (or any guessable counter) as token material, and never let one issued token be derivable from another. Make tokens long, single-use where applicable, and revocable. The distinguishing test: on a staging instance, mint two tokens (or two accounts' tokens) and confirm that one cannot be derived from the other, from the tenant id, or from the generation timestamp - an AI app whose API-key / share-token derivation is predictable permits account takeover from a shared link alone.",
|
|
17129
|
+
"evidence": "https://github.com/infiniflow/ragflow/security/advisories/GHSA-9j5g-g4xm-57w7",
|
|
17130
|
+
"gap_closes": [
|
|
17131
|
+
"NIST-800-53-IA-5",
|
|
17132
|
+
"NIST-800-53-AC-3",
|
|
17133
|
+
"ALL-AI-PIPELINE-INTEGRITY"
|
|
17134
|
+
]
|
|
17135
|
+
}
|
|
17136
|
+
],
|
|
17137
|
+
"_auto_imported": false,
|
|
17138
|
+
"_intake_method": "manual-verified-curation"
|
|
17039
17139
|
}
|
|
17040
17140
|
}
|