@blamejs/exceptd-skills 0.13.114 → 0.13.116
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 +2 -2
- package/data/_indexes/catalog-summaries.json +2 -2
- package/data/_indexes/chains.json +476 -0
- package/data/atlas-ttps.json +2 -0
- package/data/attack-techniques.json +10 -0
- package/data/cve-catalog.json +208 -0
- package/data/cwe-catalog.json +4 -1
- package/data/framework-control-gaps.json +20 -2
- package/data/zeroday-lessons.json +100 -0
- package/manifest.json +44 -44
- package/package.json +2 -2
- package/sbom.cdx.json +27 -27
package/data/cve-catalog.json
CHANGED
|
@@ -18116,6 +18116,214 @@
|
|
|
18116
18116
|
"_intake_method": "manual-verified-curation",
|
|
18117
18117
|
"_kev_short_description": "Dify's /forgot-password/resets endpoint does not verify the reset code, letting an attacker reset any user's password incl. admin (CWE-287/CWE-640; NVD CWE-305); no fixed version published - verify the reset token server-side."
|
|
18118
18118
|
},
|
|
18119
|
+
"CVE-2026-41947": {
|
|
18120
|
+
"name": "Dify Trace-Config Cross-Tenant Authorization Bypass",
|
|
18121
|
+
"type": "Authorization Bypass",
|
|
18122
|
+
"cvss_score": 9.1,
|
|
18123
|
+
"cvss_vector": "CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N",
|
|
18124
|
+
"cvss_note": "VulnCheck (CNA) / NVD CVSS v4.0 base 9.1 (CRITICAL); vector CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N (AC:H - the attacker must target a specific application). Dify's trace-configuration endpoints lack tenant-ownership checks, so an authenticated editor user configures trace settings for ANY application regardless of tenant ownership (CWE-639 authorization bypass through user-controlled key), and can redirect victim trace data to an attacker-controlled provider.",
|
|
18125
|
+
"cisa_kev": false,
|
|
18126
|
+
"poc_available": true,
|
|
18127
|
+
"poc_description": "Documented in the disclosing advisory (https://github.com/advisories/GHSA-48v9-p8g8-55vg): an editor user configures trace settings for an application they do not own.",
|
|
18128
|
+
"ai_discovered": false,
|
|
18129
|
+
"ai_discovery_source": "human_researcher",
|
|
18130
|
+
"ai_discovery_notes": "Disclosed via the GitHub Security Advisory / VulnCheck (https://github.com/advisories/GHSA-48v9-p8g8-55vg). The abused surface is Dify, a widely used low-code LLM application-development platform.",
|
|
18131
|
+
"ai_assisted_weaponization": false,
|
|
18132
|
+
"ai_assisted_notes": "No AI-assisted weaponization; the flaw is missing object-level authorization in an LLM app platform's API.",
|
|
18133
|
+
"active_exploitation": "none",
|
|
18134
|
+
"active_exploitation_notes": "Advisory disclosure with a coordinated fix; no confirmed in-the-wild exploitation reported as of curation.",
|
|
18135
|
+
"affected": "Dify through 1.14.1.",
|
|
18136
|
+
"affected_versions": [
|
|
18137
|
+
"Dify <= 1.14.1"
|
|
18138
|
+
],
|
|
18139
|
+
"vector": "Dify's trace-configuration endpoints do not verify tenant ownership, so an authenticated editor-level user supplies another application's identifier and configures its trace settings without owning the tenant (CWE-639). The attacker can redirect that application's trace/telemetry data to an attacker-controlled provider, exfiltrating victim data.",
|
|
18140
|
+
"complexity": "high",
|
|
18141
|
+
"complexity_notes": "VulnCheck v4.0 AV:N / AC:H / PR:N - an authenticated editor-level account; AC:H reflects targeting a specific application's trace configuration; no tenant ownership required.",
|
|
18142
|
+
"patch_available": true,
|
|
18143
|
+
"patch_required_reboot": false,
|
|
18144
|
+
"live_patch_available": false,
|
|
18145
|
+
"live_patch_tools": [],
|
|
18146
|
+
"live_patch_notes": "Remediation is upgrading to 1.14.2 or later; redeploy, no host reboot.",
|
|
18147
|
+
"vendor_update_paths": [
|
|
18148
|
+
"Upgrade Dify to 1.14.2 or later. Enforce object-level authorization on every API that references an object by caller-supplied id: verify tenant ownership before allowing trace-configuration changes."
|
|
18149
|
+
],
|
|
18150
|
+
"framework_control_gaps": {
|
|
18151
|
+
"NIST-800-53-AC-3": "Access enforcement does not verify ownership of the application/tenant whose trace config is changed (CWE-639).",
|
|
18152
|
+
"NIST-800-53-AC-6": "Least-privilege is not enforced - an ordinary authenticated user can redirect another tenant's trace data to an external provider.",
|
|
18153
|
+
"NIST-800-53-SC-28": "Protection of information does not prevent cross-tenant access to data via a user-controlled key.",
|
|
18154
|
+
"ISO-27001-2022-A.5.15": "Access control does not enforce object-level authorization on the LLM app platform's API.",
|
|
18155
|
+
"NIS2-Art21-identity-management": "Article 21 access-control measures do not prevent object-level authorization bypass in AI apps.",
|
|
18156
|
+
"DORA-Art-9": "ICT protection measures do not model cross-tenant config tampering in an AI app as an ICT-risk event.",
|
|
18157
|
+
"UK-CAF-B2": "Identity and Access Control objective has no objective for object-level authorization on AI app-platform APIs.",
|
|
18158
|
+
"AU-ISM-1546": "Patch-application control does not single out LLM app platforms.",
|
|
18159
|
+
"ALL-AI-PIPELINE-INTEGRITY": "No framework treats an LLM app platform's object-level authorization (ownership checks on user-controlled keys) as an integrity control."
|
|
18160
|
+
},
|
|
18161
|
+
"atlas_refs": [
|
|
18162
|
+
"AML.T0049"
|
|
18163
|
+
],
|
|
18164
|
+
"attack_refs": [
|
|
18165
|
+
"T1190",
|
|
18166
|
+
"T1078",
|
|
18167
|
+
"T1530"
|
|
18168
|
+
],
|
|
18169
|
+
"rwep_score": 27,
|
|
18170
|
+
"rwep_factors": {
|
|
18171
|
+
"cisa_kev": 0,
|
|
18172
|
+
"poc_available": 20,
|
|
18173
|
+
"ai_factor": 0,
|
|
18174
|
+
"active_exploitation": 0,
|
|
18175
|
+
"blast_radius": 22,
|
|
18176
|
+
"patch_available": -15,
|
|
18177
|
+
"live_patch_available": 0,
|
|
18178
|
+
"reboot_required": 0
|
|
18179
|
+
},
|
|
18180
|
+
"rwep_notes": "Moderate (RWEP 27, \"patch within 30 days\" band per lib/scoring.js timeline). Not KEV, no confirmed in-the-wild exploitation, patched at disclosure (Hard Rule #3): poc_available=20 + blast_radius=22, minus patch_available 15. Object-level authorization bypass (CWE-639) - cross-tenant trace-config tampering.",
|
|
18181
|
+
"epss_score": null,
|
|
18182
|
+
"epss_date": "2026-05-26",
|
|
18183
|
+
"epss_note": "EPSS not pulled for this entry; retrieve via FIRST EPSS API in a future refresh.",
|
|
18184
|
+
"epss_source": "https://api.first.org/data/v1/epss?cve=CVE-2026-41947",
|
|
18185
|
+
"cwe_refs": [
|
|
18186
|
+
"CWE-639"
|
|
18187
|
+
],
|
|
18188
|
+
"iocs": {
|
|
18189
|
+
"behavioral": [
|
|
18190
|
+
"Dify trace-configuration requests referencing application/tenant identifiers the caller does not own.",
|
|
18191
|
+
"Dify application trace/telemetry endpoints reconfigured to point at an unexpected external provider.",
|
|
18192
|
+
"Dify <= 1.14.1 with editor-level accounts able to reach trace-config endpoints - the exposed precondition."
|
|
18193
|
+
],
|
|
18194
|
+
"_ioc_source_note": "Behavioral signatures anchored to the GitHub Security Advisory / VulnCheck (https://github.com/advisories/GHSA-48v9-p8g8-55vg) and NVD CVE-2026-41947 (CWE-639)."
|
|
18195
|
+
},
|
|
18196
|
+
"source_verified": "2026-05-26",
|
|
18197
|
+
"verification_sources": [
|
|
18198
|
+
"https://nvd.nist.gov/vuln/detail/CVE-2026-41947",
|
|
18199
|
+
"https://github.com/advisories/GHSA-48v9-p8g8-55vg"
|
|
18200
|
+
],
|
|
18201
|
+
"vendor_advisories": [
|
|
18202
|
+
{
|
|
18203
|
+
"vendor": "GitHub Security Advisory",
|
|
18204
|
+
"advisory_id": "CVE-2026-41947",
|
|
18205
|
+
"url": "https://github.com/advisories/GHSA-48v9-p8g8-55vg",
|
|
18206
|
+
"severity": "critical",
|
|
18207
|
+
"published_date": "2026-05-18"
|
|
18208
|
+
},
|
|
18209
|
+
{
|
|
18210
|
+
"vendor": "NVD",
|
|
18211
|
+
"advisory_id": "CVE-2026-41947",
|
|
18212
|
+
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-41947",
|
|
18213
|
+
"severity": "critical",
|
|
18214
|
+
"published_date": "2026-05-18"
|
|
18215
|
+
}
|
|
18216
|
+
],
|
|
18217
|
+
"last_updated": "2026-05-26",
|
|
18218
|
+
"discovery_attribution_note": "Manually curated from the GitHub Security Advisory (https://github.com/advisories/GHSA-48v9-p8g8-55vg, CWE-639) + VulnCheck (CNA) / NVD (CVSS v4.0 9.1, AC:H). Dify LLM-app-platform object-level authorization bypass; reuses the AI-app API object-authorization control NEW-CTRL-106 (shared with the Label Studio privilege-escalation chain).",
|
|
18219
|
+
"_auto_imported": false,
|
|
18220
|
+
"_intake_method": "manual-verified-curation",
|
|
18221
|
+
"_kev_short_description": "Dify's trace-config endpoints miss tenant-ownership checks, letting an editor user configure trace settings for any app and redirect victim data (CWE-639 authz bypass); fixed in 1.14.2."
|
|
18222
|
+
},
|
|
18223
|
+
"CVE-2026-41950": {
|
|
18224
|
+
"name": "Dify Chat-Messages Arbitrary File-UUID Cross-User File Read",
|
|
18225
|
+
"type": "Authorization Bypass",
|
|
18226
|
+
"cvss_score": 6.5,
|
|
18227
|
+
"cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N",
|
|
18228
|
+
"cvss_note": "VulnCheck (CNA) CVSS v3.1 base 6.5 (MEDIUM, confidentiality-only); VulnCheck also rates it CVSS v4.0 6.0. Dify does not verify ownership of file references in a chat-messages request, so an authenticated user supplies an arbitrary file UUID in the files array and reads the full contents of files uploaded by other users in the same tenant (CWE-639 authorization bypass through user-controlled key / IDOR).",
|
|
18229
|
+
"cisa_kev": false,
|
|
18230
|
+
"poc_available": true,
|
|
18231
|
+
"poc_description": "Documented in the disclosing advisory (https://github.com/advisories/GHSA-r2m5-9rwx-269r): an authenticated user reads another user's file by supplying its UUID in a chat-messages request.",
|
|
18232
|
+
"ai_discovered": false,
|
|
18233
|
+
"ai_discovery_source": "human_researcher",
|
|
18234
|
+
"ai_discovery_notes": "Disclosed via the GitHub Security Advisory / VulnCheck (https://github.com/advisories/GHSA-r2m5-9rwx-269r). The abused surface is Dify, a widely used low-code LLM application-development platform.",
|
|
18235
|
+
"ai_assisted_weaponization": false,
|
|
18236
|
+
"ai_assisted_notes": "No AI-assisted weaponization; the flaw is missing object-level authorization in an LLM app platform's API.",
|
|
18237
|
+
"active_exploitation": "none",
|
|
18238
|
+
"active_exploitation_notes": "Advisory disclosure with a coordinated fix; no confirmed in-the-wild exploitation reported as of curation.",
|
|
18239
|
+
"affected": "Dify before 1.14.0.",
|
|
18240
|
+
"affected_versions": [
|
|
18241
|
+
"Dify < 1.14.0"
|
|
18242
|
+
],
|
|
18243
|
+
"vector": "Dify accepts a file UUID in the files array of a chat-messages request without verifying that the requesting user owns that file, so an authenticated user supplies an arbitrary UUID and reads the full contents of files uploaded by other users within the same tenant - an insecure-direct-object-reference authorization bypass (CWE-639).",
|
|
18244
|
+
"complexity": "low",
|
|
18245
|
+
"complexity_notes": "VulnCheck AV:N / AC:L / PR:L - an authenticated user in the tenant supplies an arbitrary file UUID.",
|
|
18246
|
+
"patch_available": true,
|
|
18247
|
+
"patch_required_reboot": false,
|
|
18248
|
+
"live_patch_available": false,
|
|
18249
|
+
"live_patch_tools": [],
|
|
18250
|
+
"live_patch_notes": "Remediation is upgrading to 1.14.0 or later; redeploy, no host reboot.",
|
|
18251
|
+
"vendor_update_paths": [
|
|
18252
|
+
"Upgrade Dify to 1.14.0 or later. Enforce object-level authorization on every API that references an object by caller-supplied id: verify the requesting user owns each file UUID before returning its contents."
|
|
18253
|
+
],
|
|
18254
|
+
"framework_control_gaps": {
|
|
18255
|
+
"NIST-800-53-AC-3": "Access enforcement does not verify ownership of the file referenced by a caller-supplied UUID (CWE-639).",
|
|
18256
|
+
"NIST-800-53-AC-6": "Least-privilege is not enforced - an ordinary authenticated user can read another user's file contents.",
|
|
18257
|
+
"NIST-800-53-SC-28": "Protection of information does not prevent cross-user access to data via a user-controlled key.",
|
|
18258
|
+
"ISO-27001-2022-A.5.15": "Access control does not enforce object-level authorization on the LLM app platform's API.",
|
|
18259
|
+
"NIS2-Art21-identity-management": "Article 21 access-control measures do not prevent object-level authorization bypass in AI apps.",
|
|
18260
|
+
"DORA-Art-9": "ICT protection measures do not model cross-user data disclosure in an AI app as an ICT-risk event.",
|
|
18261
|
+
"UK-CAF-B2": "Identity and Access Control objective has no objective for object-level authorization on AI app-platform APIs.",
|
|
18262
|
+
"AU-ISM-1546": "Patch-application control does not single out LLM app platforms.",
|
|
18263
|
+
"ALL-AI-PIPELINE-INTEGRITY": "No framework treats an LLM app platform's object-level authorization (ownership checks on user-controlled keys) as an integrity control."
|
|
18264
|
+
},
|
|
18265
|
+
"atlas_refs": [
|
|
18266
|
+
"AML.T0049"
|
|
18267
|
+
],
|
|
18268
|
+
"attack_refs": [
|
|
18269
|
+
"T1190",
|
|
18270
|
+
"T1078",
|
|
18271
|
+
"T1213"
|
|
18272
|
+
],
|
|
18273
|
+
"rwep_score": 21,
|
|
18274
|
+
"rwep_factors": {
|
|
18275
|
+
"cisa_kev": 0,
|
|
18276
|
+
"poc_available": 20,
|
|
18277
|
+
"ai_factor": 0,
|
|
18278
|
+
"active_exploitation": 0,
|
|
18279
|
+
"blast_radius": 16,
|
|
18280
|
+
"patch_available": -15,
|
|
18281
|
+
"live_patch_available": 0,
|
|
18282
|
+
"reboot_required": 0
|
|
18283
|
+
},
|
|
18284
|
+
"rwep_notes": "Moderate (RWEP 21, \"patch within 30 days\" band per lib/scoring.js timeline). Not KEV, no confirmed in-the-wild exploitation, patched at disclosure (Hard Rule #3): poc_available=20 + blast_radius=16, minus patch_available 15. Object-level authorization bypass (CWE-639) - cross-user file read.",
|
|
18285
|
+
"epss_score": null,
|
|
18286
|
+
"epss_date": "2026-05-26",
|
|
18287
|
+
"epss_note": "EPSS not pulled for this entry; retrieve via FIRST EPSS API in a future refresh.",
|
|
18288
|
+
"epss_source": "https://api.first.org/data/v1/epss?cve=CVE-2026-41950",
|
|
18289
|
+
"cwe_refs": [
|
|
18290
|
+
"CWE-639"
|
|
18291
|
+
],
|
|
18292
|
+
"iocs": {
|
|
18293
|
+
"behavioral": [
|
|
18294
|
+
"Dify chat-messages requests whose files array references file UUIDs not uploaded by the requesting user.",
|
|
18295
|
+
"Dify returning file contents belonging to other users in the same tenant.",
|
|
18296
|
+
"Dify < 1.14.0 with multiple users sharing a tenant - the exposed precondition."
|
|
18297
|
+
],
|
|
18298
|
+
"_ioc_source_note": "Behavioral signatures anchored to the GitHub Security Advisory / VulnCheck (https://github.com/advisories/GHSA-r2m5-9rwx-269r) and NVD CVE-2026-41950 (CWE-639)."
|
|
18299
|
+
},
|
|
18300
|
+
"source_verified": "2026-05-26",
|
|
18301
|
+
"verification_sources": [
|
|
18302
|
+
"https://nvd.nist.gov/vuln/detail/CVE-2026-41950",
|
|
18303
|
+
"https://github.com/advisories/GHSA-r2m5-9rwx-269r"
|
|
18304
|
+
],
|
|
18305
|
+
"vendor_advisories": [
|
|
18306
|
+
{
|
|
18307
|
+
"vendor": "GitHub Security Advisory",
|
|
18308
|
+
"advisory_id": "CVE-2026-41950",
|
|
18309
|
+
"url": "https://github.com/advisories/GHSA-r2m5-9rwx-269r",
|
|
18310
|
+
"severity": "medium",
|
|
18311
|
+
"published_date": "2026-05-05"
|
|
18312
|
+
},
|
|
18313
|
+
{
|
|
18314
|
+
"vendor": "NVD",
|
|
18315
|
+
"advisory_id": "CVE-2026-41950",
|
|
18316
|
+
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-41950",
|
|
18317
|
+
"severity": "medium",
|
|
18318
|
+
"published_date": "2026-05-05"
|
|
18319
|
+
}
|
|
18320
|
+
],
|
|
18321
|
+
"last_updated": "2026-05-26",
|
|
18322
|
+
"discovery_attribution_note": "Manually curated from the GitHub Security Advisory (https://github.com/advisories/GHSA-r2m5-9rwx-269r, CWE-639) + VulnCheck (CNA, CVSS v3.1 6.5; v4.0 6.0). Dify LLM-app-platform object-level authorization bypass; reuses the AI-app API object-authorization control NEW-CTRL-106 (shared with the Label Studio privilege-escalation chain).",
|
|
18323
|
+
"_auto_imported": false,
|
|
18324
|
+
"_intake_method": "manual-verified-curation",
|
|
18325
|
+
"_kev_short_description": "Dify reads files by user-supplied UUID in chat-messages without ownership checks, letting an authenticated user read other users' uploaded files in the tenant (CWE-639 IDOR); fixed in 1.14.0."
|
|
18326
|
+
},
|
|
18119
18327
|
"CVE-2026-41091": {
|
|
18120
18328
|
"name": "Microsoft Defender (Malware Protection Engine) Link-Following LPE to SYSTEM",
|
|
18121
18329
|
"type": "LPE",
|
package/data/cwe-catalog.json
CHANGED
|
@@ -3497,7 +3497,10 @@
|
|
|
3497
3497
|
"CWE-2000"
|
|
3498
3498
|
],
|
|
3499
3499
|
"related_weaknesses": [],
|
|
3500
|
-
"evidence_cves": [
|
|
3500
|
+
"evidence_cves": [
|
|
3501
|
+
"CVE-2026-41947",
|
|
3502
|
+
"CVE-2026-41950"
|
|
3503
|
+
],
|
|
3501
3504
|
"last_verified": "2026-05-19",
|
|
3502
3505
|
"notes": "Bulk-imported v0.13.18 from the canonical MITRE Top 25 + commonly-referenced-class expansion.",
|
|
3503
3506
|
"_auto_imported": true,
|
|
@@ -114,6 +114,8 @@
|
|
|
114
114
|
"CVE-2026-33017",
|
|
115
115
|
"CVE-2026-34159",
|
|
116
116
|
"CVE-2026-40933",
|
|
117
|
+
"CVE-2026-41947",
|
|
118
|
+
"CVE-2026-41950",
|
|
117
119
|
"CVE-2026-45829"
|
|
118
120
|
],
|
|
119
121
|
"atlas_refs": [
|
|
@@ -2221,6 +2223,8 @@
|
|
|
2221
2223
|
"CVE-2023-47117",
|
|
2222
2224
|
"CVE-2025-14847",
|
|
2223
2225
|
"CVE-2025-22226",
|
|
2226
|
+
"CVE-2026-41947",
|
|
2227
|
+
"CVE-2026-41950",
|
|
2224
2228
|
"CVE-2026-43284"
|
|
2225
2229
|
],
|
|
2226
2230
|
"atlas_refs": [],
|
|
@@ -3884,7 +3888,9 @@
|
|
|
3884
3888
|
"CVE-2025-64513",
|
|
3885
3889
|
"CVE-2026-24206",
|
|
3886
3890
|
"CVE-2026-24207",
|
|
3887
|
-
"CVE-2026-26190"
|
|
3891
|
+
"CVE-2026-26190",
|
|
3892
|
+
"CVE-2026-41947",
|
|
3893
|
+
"CVE-2026-41950"
|
|
3888
3894
|
],
|
|
3889
3895
|
"atlas_refs": [
|
|
3890
3896
|
"AML.T0010",
|
|
@@ -5187,6 +5193,8 @@
|
|
|
5187
5193
|
"CVE-2026-34926",
|
|
5188
5194
|
"CVE-2026-40933",
|
|
5189
5195
|
"CVE-2026-41091",
|
|
5196
|
+
"CVE-2026-41947",
|
|
5197
|
+
"CVE-2026-41950",
|
|
5190
5198
|
"CVE-2026-42897",
|
|
5191
5199
|
"CVE-2026-42945",
|
|
5192
5200
|
"CVE-2026-45498",
|
|
@@ -5240,6 +5248,8 @@
|
|
|
5240
5248
|
"CVE-2025-56520",
|
|
5241
5249
|
"CVE-2026-33017",
|
|
5242
5250
|
"CVE-2026-39987",
|
|
5251
|
+
"CVE-2026-41947",
|
|
5252
|
+
"CVE-2026-41950",
|
|
5243
5253
|
"CVE-2026-7482"
|
|
5244
5254
|
],
|
|
5245
5255
|
"atlas_refs": [
|
|
@@ -5497,6 +5507,8 @@
|
|
|
5497
5507
|
"CVE-2026-3909",
|
|
5498
5508
|
"CVE-2026-3910",
|
|
5499
5509
|
"CVE-2026-41940",
|
|
5510
|
+
"CVE-2026-41947",
|
|
5511
|
+
"CVE-2026-41950",
|
|
5500
5512
|
"CVE-2026-6973"
|
|
5501
5513
|
],
|
|
5502
5514
|
"atlas_refs": [],
|
|
@@ -5538,6 +5550,8 @@
|
|
|
5538
5550
|
"CVE-2025-1796",
|
|
5539
5551
|
"CVE-2025-3248",
|
|
5540
5552
|
"CVE-2026-33017",
|
|
5553
|
+
"CVE-2026-41947",
|
|
5554
|
+
"CVE-2026-41950",
|
|
5541
5555
|
"CVE-2026-6973"
|
|
5542
5556
|
],
|
|
5543
5557
|
"atlas_refs": [],
|
|
@@ -5892,6 +5906,8 @@
|
|
|
5892
5906
|
"CVE-2026-34926",
|
|
5893
5907
|
"CVE-2026-40933",
|
|
5894
5908
|
"CVE-2026-41091",
|
|
5909
|
+
"CVE-2026-41947",
|
|
5910
|
+
"CVE-2026-41950",
|
|
5895
5911
|
"CVE-2026-45498",
|
|
5896
5912
|
"CVE-2026-45829",
|
|
5897
5913
|
"CVE-2026-46300",
|
|
@@ -6115,7 +6131,9 @@
|
|
|
6115
6131
|
"CVE-2025-55241",
|
|
6116
6132
|
"CVE-2026-24206",
|
|
6117
6133
|
"CVE-2026-24207",
|
|
6118
|
-
"CVE-2026-33017"
|
|
6134
|
+
"CVE-2026-33017",
|
|
6135
|
+
"CVE-2026-41947",
|
|
6136
|
+
"CVE-2026-41950"
|
|
6119
6137
|
],
|
|
6120
6138
|
"atlas_refs": [],
|
|
6121
6139
|
"attack_refs": [
|
|
@@ -4861,6 +4861,106 @@
|
|
|
4861
4861
|
"_auto_imported": false,
|
|
4862
4862
|
"_intake_method": "manual-verified-curation"
|
|
4863
4863
|
},
|
|
4864
|
+
"CVE-2026-41947": {
|
|
4865
|
+
"name": "Dify Trace-Config Cross-Tenant Authorization Bypass",
|
|
4866
|
+
"lesson_date": "2026-05-26",
|
|
4867
|
+
"attack_vector": {
|
|
4868
|
+
"description": "Dify's trace-configuration endpoints do not verify tenant ownership, so an authenticated editor user configures trace settings for any application and can redirect victim trace data to an attacker-controlled provider.",
|
|
4869
|
+
"privileges_required": "low (an authenticated editor account)",
|
|
4870
|
+
"complexity": "low",
|
|
4871
|
+
"ai_factor": "The abused surface is Dify, a low-code LLM application-development platform. The lesson: an LLM app platform's API must enforce object-level authorization (ownership of the tenant/application/file referenced by a caller-supplied key) on every request - here a user-controlled key bypassed it for cross-tenant trace-config tampering / data redirect."
|
|
4872
|
+
},
|
|
4873
|
+
"framework_coverage": {
|
|
4874
|
+
"NIST-800-53-AC-3": {
|
|
4875
|
+
"covered": true,
|
|
4876
|
+
"adequate": false,
|
|
4877
|
+
"gap": "Access enforcement does not verify ownership of the object referenced by a caller-supplied key (CWE-639)."
|
|
4878
|
+
},
|
|
4879
|
+
"NIST-800-53-SC-28": {
|
|
4880
|
+
"covered": true,
|
|
4881
|
+
"adequate": false,
|
|
4882
|
+
"gap": "Data is reachable cross-tenant/cross-user via a user-controlled key without an ownership check."
|
|
4883
|
+
},
|
|
4884
|
+
"ALL-AI-PIPELINE-INTEGRITY": {
|
|
4885
|
+
"covered": false,
|
|
4886
|
+
"adequate": false,
|
|
4887
|
+
"gap": "No framework treats an LLM app platform's object-level authorization as an integrity control whose absence yields cross-tenant/user access."
|
|
4888
|
+
}
|
|
4889
|
+
},
|
|
4890
|
+
"compliance_exposure_score": {
|
|
4891
|
+
"percent_audit_passing_orgs_still_exposed": 80,
|
|
4892
|
+
"basis": "Multi-tenant LLM app platforms expose rich object-referencing APIs; ownership checks on user-controlled keys (tenant/app/file ids) are frequently missing and rarely audited.",
|
|
4893
|
+
"theater_pattern": "ai_app_broken_object_authorization"
|
|
4894
|
+
},
|
|
4895
|
+
"ai_discovered_zeroday": false,
|
|
4896
|
+
"ai_discovery_source": "human_researcher",
|
|
4897
|
+
"ai_assist_factor": "none",
|
|
4898
|
+
"new_control_requirements": [
|
|
4899
|
+
{
|
|
4900
|
+
"id": "NEW-CTRL-106",
|
|
4901
|
+
"name": "AI-APP-API-OBJECT-AUTHORIZATION-AND-FIELD-EXPOSURE",
|
|
4902
|
+
"description": "An AI data-platform API (data-labeling, annotation, dataset/registry services) must enforce object-level authorization on every read and must never expose sensitive fields - secrets, session-signing keys, auth tokens, password hashes - through API responses, serializers, or user-controlled query/filter expressions. Use serializer field allowlists (never blanket model serialization), reject ORM/filter inputs that reference fields the caller is not authorized to read, scope every query to the caller's own objects, and store credentials so a read leak is not directly replayable (and rotate exposed secrets). The distinguishing test: as a low-privilege user, craft a filter/query that references another account's password hash or token, and confirm the API refuses it - a platform whose filter/serializer leaks sensitive fields lets an attacker chain disclosure into account impersonation and privilege escalation.",
|
|
4903
|
+
"evidence": "https://github.com/advisories/GHSA-6hjj-gq77-j4qw",
|
|
4904
|
+
"gap_closes": [
|
|
4905
|
+
"NIST-800-53-AC-3",
|
|
4906
|
+
"NIST-800-53-SC-28",
|
|
4907
|
+
"ALL-AI-PIPELINE-INTEGRITY"
|
|
4908
|
+
]
|
|
4909
|
+
}
|
|
4910
|
+
],
|
|
4911
|
+
"_auto_imported": false,
|
|
4912
|
+
"_intake_method": "manual-verified-curation"
|
|
4913
|
+
},
|
|
4914
|
+
"CVE-2026-41950": {
|
|
4915
|
+
"name": "Dify Chat-Messages Arbitrary File-UUID Cross-User File Read",
|
|
4916
|
+
"lesson_date": "2026-05-26",
|
|
4917
|
+
"attack_vector": {
|
|
4918
|
+
"description": "Dify accepts a caller-supplied file UUID in a chat-messages request without verifying ownership, so an authenticated user reads files uploaded by other users in the same tenant (IDOR).",
|
|
4919
|
+
"privileges_required": "low (an authenticated tenant user)",
|
|
4920
|
+
"complexity": "low",
|
|
4921
|
+
"ai_factor": "The abused surface is Dify, a low-code LLM application-development platform. The lesson: an LLM app platform's API must enforce object-level authorization (ownership of the tenant/application/file referenced by a caller-supplied key) on every request - here a user-controlled key bypassed it for cross-user file disclosure."
|
|
4922
|
+
},
|
|
4923
|
+
"framework_coverage": {
|
|
4924
|
+
"NIST-800-53-AC-3": {
|
|
4925
|
+
"covered": true,
|
|
4926
|
+
"adequate": false,
|
|
4927
|
+
"gap": "Access enforcement does not verify ownership of the object referenced by a caller-supplied key (CWE-639)."
|
|
4928
|
+
},
|
|
4929
|
+
"NIST-800-53-SC-28": {
|
|
4930
|
+
"covered": true,
|
|
4931
|
+
"adequate": false,
|
|
4932
|
+
"gap": "Data is reachable cross-tenant/cross-user via a user-controlled key without an ownership check."
|
|
4933
|
+
},
|
|
4934
|
+
"ALL-AI-PIPELINE-INTEGRITY": {
|
|
4935
|
+
"covered": false,
|
|
4936
|
+
"adequate": false,
|
|
4937
|
+
"gap": "No framework treats an LLM app platform's object-level authorization as an integrity control whose absence yields cross-tenant/user access."
|
|
4938
|
+
}
|
|
4939
|
+
},
|
|
4940
|
+
"compliance_exposure_score": {
|
|
4941
|
+
"percent_audit_passing_orgs_still_exposed": 80,
|
|
4942
|
+
"basis": "Multi-tenant LLM app platforms expose rich object-referencing APIs; ownership checks on user-controlled keys (tenant/app/file ids) are frequently missing and rarely audited.",
|
|
4943
|
+
"theater_pattern": "ai_app_broken_object_authorization"
|
|
4944
|
+
},
|
|
4945
|
+
"ai_discovered_zeroday": false,
|
|
4946
|
+
"ai_discovery_source": "human_researcher",
|
|
4947
|
+
"ai_assist_factor": "none",
|
|
4948
|
+
"new_control_requirements": [
|
|
4949
|
+
{
|
|
4950
|
+
"id": "NEW-CTRL-106",
|
|
4951
|
+
"name": "AI-APP-API-OBJECT-AUTHORIZATION-AND-FIELD-EXPOSURE",
|
|
4952
|
+
"description": "An AI data-platform API (data-labeling, annotation, dataset/registry services) must enforce object-level authorization on every read and must never expose sensitive fields - secrets, session-signing keys, auth tokens, password hashes - through API responses, serializers, or user-controlled query/filter expressions. Use serializer field allowlists (never blanket model serialization), reject ORM/filter inputs that reference fields the caller is not authorized to read, scope every query to the caller's own objects, and store credentials so a read leak is not directly replayable (and rotate exposed secrets). The distinguishing test: as a low-privilege user, craft a filter/query that references another account's password hash or token, and confirm the API refuses it - a platform whose filter/serializer leaks sensitive fields lets an attacker chain disclosure into account impersonation and privilege escalation.",
|
|
4953
|
+
"evidence": "https://github.com/advisories/GHSA-6hjj-gq77-j4qw",
|
|
4954
|
+
"gap_closes": [
|
|
4955
|
+
"NIST-800-53-AC-3",
|
|
4956
|
+
"NIST-800-53-SC-28",
|
|
4957
|
+
"ALL-AI-PIPELINE-INTEGRITY"
|
|
4958
|
+
]
|
|
4959
|
+
}
|
|
4960
|
+
],
|
|
4961
|
+
"_auto_imported": false,
|
|
4962
|
+
"_intake_method": "manual-verified-curation"
|
|
4963
|
+
},
|
|
4864
4964
|
"CVE-2024-12776": {
|
|
4865
4965
|
"name": "Dify Unverified Password-Reset Endpoint Account Takeover",
|
|
4866
4966
|
"lesson_date": "2026-05-26",
|