@blamejs/exceptd-skills 0.13.112 → 0.13.114

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.
@@ -52,6 +52,7 @@
52
52
  "CVE-2024-11393",
53
53
  "CVE-2024-11394",
54
54
  "CVE-2024-12366",
55
+ "CVE-2024-12776",
55
56
  "CVE-2024-13059",
56
57
  "CVE-2024-1561",
57
58
  "CVE-2024-21575",
@@ -73,6 +74,7 @@
73
74
  "CVE-2024-9526",
74
75
  "CVE-2025-1550",
75
76
  "CVE-2025-1753",
77
+ "CVE-2025-1796",
76
78
  "CVE-2025-23254",
77
79
  "CVE-2025-23266",
78
80
  "CVE-2025-25297",
@@ -84,8 +86,10 @@
84
86
  "CVE-2025-3248",
85
87
  "CVE-2025-33236",
86
88
  "CVE-2025-34291",
89
+ "CVE-2025-3466",
87
90
  "CVE-2025-49596",
88
91
  "CVE-2025-54136",
92
+ "CVE-2025-56520",
89
93
  "CVE-2025-60455",
90
94
  "CVE-2025-64496",
91
95
  "CVE-2025-64513",
@@ -1250,7 +1254,8 @@
1250
1254
  "CVE-2024-0132",
1251
1255
  "CVE-2024-21626",
1252
1256
  "CVE-2025-23266",
1253
- "CVE-2025-25297"
1257
+ "CVE-2025-25297",
1258
+ "CVE-2025-56520"
1254
1259
  ],
1255
1260
  "atlas_refs": [],
1256
1261
  "attack_refs": [
@@ -1297,6 +1302,7 @@
1297
1302
  "CVE-2025-1094",
1298
1303
  "CVE-2025-27520",
1299
1304
  "CVE-2025-3248",
1305
+ "CVE-2025-3466",
1300
1306
  "CVE-2025-6965",
1301
1307
  "CVE-2026-30623",
1302
1308
  "CVE-2026-31229",
@@ -2135,6 +2141,7 @@
2135
2141
  "CVE-2024-5565",
2136
2142
  "CVE-2025-27520",
2137
2143
  "CVE-2025-3248",
2144
+ "CVE-2025-3466",
2138
2145
  "CVE-2025-49844",
2139
2146
  "CVE-2025-53773",
2140
2147
  "CVE-2026-30615",
@@ -2295,6 +2302,7 @@
2295
2302
  "CVE-2025-30202",
2296
2303
  "CVE-2025-32444",
2297
2304
  "CVE-2025-53767",
2305
+ "CVE-2025-56520",
2298
2306
  "CVE-2026-34159",
2299
2307
  "CVE-2026-42897"
2300
2308
  ],
@@ -2394,6 +2402,8 @@
2394
2402
  "CVE-2025-30165",
2395
2403
  "CVE-2025-32434",
2396
2404
  "CVE-2025-33236",
2405
+ "CVE-2025-3466",
2406
+ "CVE-2025-56520",
2397
2407
  "CVE-2025-60455",
2398
2408
  "CVE-2025-64496",
2399
2409
  "CVE-2025-67818",
@@ -2856,6 +2866,7 @@
2856
2866
  "CVE-2025-11837",
2857
2867
  "CVE-2025-27520",
2858
2868
  "CVE-2025-3248",
2869
+ "CVE-2025-3466",
2859
2870
  "CVE-2026-22778",
2860
2871
  "CVE-2026-32202",
2861
2872
  "CVE-2026-33017",
@@ -3866,8 +3877,10 @@
3866
3877
  "CVE-2023-48022",
3867
3878
  "CVE-2023-6019",
3868
3879
  "CVE-2023-6021",
3880
+ "CVE-2024-12776",
3869
3881
  "CVE-2024-4889",
3870
3882
  "CVE-2024-6587",
3883
+ "CVE-2025-1796",
3871
3884
  "CVE-2025-64513",
3872
3885
  "CVE-2026-24206",
3873
3886
  "CVE-2026-24207",
@@ -5050,6 +5063,7 @@
5050
5063
  "CVE-2024-5565",
5051
5064
  "CVE-2024-9526",
5052
5065
  "CVE-2025-27520",
5066
+ "CVE-2025-3466",
5053
5067
  "CVE-2026-0300",
5054
5068
  "CVE-2026-42945"
5055
5069
  ],
@@ -5104,6 +5118,7 @@
5104
5118
  "CVE-2024-11393",
5105
5119
  "CVE-2024-11394",
5106
5120
  "CVE-2024-12366",
5121
+ "CVE-2024-12776",
5107
5122
  "CVE-2024-13059",
5108
5123
  "CVE-2024-1561",
5109
5124
  "CVE-2024-21513",
@@ -5127,6 +5142,7 @@
5127
5142
  "CVE-2024-9526",
5128
5143
  "CVE-2025-1550",
5129
5144
  "CVE-2025-1753",
5145
+ "CVE-2025-1796",
5130
5146
  "CVE-2025-23254",
5131
5147
  "CVE-2025-23266",
5132
5148
  "CVE-2025-25297",
@@ -5138,8 +5154,10 @@
5138
5154
  "CVE-2025-3248",
5139
5155
  "CVE-2025-33236",
5140
5156
  "CVE-2025-34291",
5157
+ "CVE-2025-3466",
5141
5158
  "CVE-2025-49596",
5142
5159
  "CVE-2025-54136",
5160
+ "CVE-2025-56520",
5143
5161
  "CVE-2025-60455",
5144
5162
  "CVE-2025-64496",
5145
5163
  "CVE-2025-64513",
@@ -5213,9 +5231,13 @@
5213
5231
  "CVE-2023-43791",
5214
5232
  "CVE-2023-47117",
5215
5233
  "CVE-2023-6038",
5234
+ "CVE-2024-12776",
5216
5235
  "CVE-2024-1709",
5236
+ "CVE-2025-1796",
5217
5237
  "CVE-2025-25297",
5218
5238
  "CVE-2025-3248",
5239
+ "CVE-2025-3466",
5240
+ "CVE-2025-56520",
5219
5241
  "CVE-2026-33017",
5220
5242
  "CVE-2026-39987",
5221
5243
  "CVE-2026-7482"
@@ -5512,6 +5534,8 @@
5512
5534
  "CVE-2023-47117",
5513
5535
  "CVE-2023-6016",
5514
5536
  "CVE-2023-6038",
5537
+ "CVE-2024-12776",
5538
+ "CVE-2025-1796",
5515
5539
  "CVE-2025-3248",
5516
5540
  "CVE-2026-33017",
5517
5541
  "CVE-2026-6973"
@@ -5719,8 +5743,10 @@
5719
5743
  "CVE-2025-3248",
5720
5744
  "CVE-2025-33236",
5721
5745
  "CVE-2025-34291",
5746
+ "CVE-2025-3466",
5722
5747
  "CVE-2025-49596",
5723
5748
  "CVE-2025-54136",
5749
+ "CVE-2025-56520",
5724
5750
  "CVE-2025-60455",
5725
5751
  "CVE-2025-64496",
5726
5752
  "CVE-2025-67818",
@@ -5799,6 +5825,7 @@
5799
5825
  "CVE-2024-11393",
5800
5826
  "CVE-2024-11394",
5801
5827
  "CVE-2024-12366",
5828
+ "CVE-2024-12776",
5802
5829
  "CVE-2024-13059",
5803
5830
  "CVE-2024-1561",
5804
5831
  "CVE-2024-21513",
@@ -5822,6 +5849,7 @@
5822
5849
  "CVE-2024-9526",
5823
5850
  "CVE-2025-1550",
5824
5851
  "CVE-2025-1753",
5852
+ "CVE-2025-1796",
5825
5853
  "CVE-2025-23254",
5826
5854
  "CVE-2025-23266",
5827
5855
  "CVE-2025-25297",
@@ -5833,8 +5861,10 @@
5833
5861
  "CVE-2025-3248",
5834
5862
  "CVE-2025-33236",
5835
5863
  "CVE-2025-34291",
5864
+ "CVE-2025-3466",
5836
5865
  "CVE-2025-49596",
5837
5866
  "CVE-2025-54136",
5867
+ "CVE-2025-56520",
5838
5868
  "CVE-2025-60455",
5839
5869
  "CVE-2025-64496",
5840
5870
  "CVE-2025-64513",
@@ -6079,6 +6109,8 @@
6079
6109
  "CVE-2023-47117",
6080
6110
  "CVE-2023-48022",
6081
6111
  "CVE-2023-6038",
6112
+ "CVE-2024-12776",
6113
+ "CVE-2025-1796",
6082
6114
  "CVE-2025-3248",
6083
6115
  "CVE-2025-55241",
6084
6116
  "CVE-2026-24206",
@@ -6155,10 +6187,12 @@
6155
6187
  "CVE-2023-6019",
6156
6188
  "CVE-2023-6021",
6157
6189
  "CVE-2023-6038",
6190
+ "CVE-2024-12776",
6158
6191
  "CVE-2024-1709",
6159
6192
  "CVE-2024-2912",
6160
6193
  "CVE-2024-4889",
6161
6194
  "CVE-2024-6587",
6195
+ "CVE-2025-1796",
6162
6196
  "CVE-2025-27520",
6163
6197
  "CVE-2025-3248",
6164
6198
  "CVE-2025-64513",
@@ -6279,6 +6313,7 @@
6279
6313
  "CVE-2022-36551",
6280
6314
  "CVE-2024-21762",
6281
6315
  "CVE-2025-25297",
6316
+ "CVE-2025-56520",
6282
6317
  "CVE-2026-20182"
6283
6318
  ],
6284
6319
  "atlas_refs": [],
@@ -4761,6 +4761,206 @@
4761
4761
  "_auto_imported": false,
4762
4762
  "_intake_method": "manual-verified-curation"
4763
4763
  },
4764
+ "CVE-2025-3466": {
4765
+ "name": "Dify Code Node Sandbox Escape to Remote Code Execution",
4766
+ "lesson_date": "2026-05-26",
4767
+ "attack_vector": {
4768
+ "description": "Dify's code node runs user-supplied code in a sandbox, but unsanitized input lets an attacker override global functions (e.g. parseInt) before the sandbox restrictions are imposed, escaping the sandbox and executing arbitrary code with root-level access.",
4769
+ "privileges_required": "low (author a workflow code node; the chain reaches root)",
4770
+ "complexity": "low",
4771
+ "ai_factor": "The abused surface is Dify, a low-code LLM application-development platform. The lesson: an app builder's code node is a code-execution surface whose sandbox must be initialized before any user input is evaluated and must resist escape."
4772
+ },
4773
+ "framework_coverage": {
4774
+ "NIST-800-53-AC-3": {
4775
+ "covered": true,
4776
+ "adequate": false,
4777
+ "gap": "Access enforcement does not constrain who can author a code node reaching a code-execution sandbox."
4778
+ },
4779
+ "NIST-800-53-SI-3": {
4780
+ "covered": true,
4781
+ "adequate": false,
4782
+ "gap": "Malicious-code protection does not treat the LLM app builder's code node as an escapable execution sandbox."
4783
+ },
4784
+ "ALL-AI-PIPELINE-INTEGRITY": {
4785
+ "covered": false,
4786
+ "adequate": false,
4787
+ "gap": "No framework treats an LLM app builder's code node as a privileged execution surface whose sandbox must be escape-resistant."
4788
+ }
4789
+ },
4790
+ "compliance_exposure_score": {
4791
+ "percent_audit_passing_orgs_still_exposed": 80,
4792
+ "basis": "Low-code LLM platforms expose code nodes for flexibility; sandbox-initialization ordering and authorship restrictions are rarely audited.",
4793
+ "theater_pattern": "ai_app_builder_unauth_exec"
4794
+ },
4795
+ "ai_discovered_zeroday": false,
4796
+ "ai_discovery_source": "human_researcher",
4797
+ "ai_assist_factor": "none",
4798
+ "new_control_requirements": [
4799
+ {
4800
+ "id": "NEW-CTRL-103",
4801
+ "name": "AI-APP-BUILDER-EXECUTION-ENDPOINT-AUTH-AND-SANDBOX",
4802
+ "description": "A visual LLM app/agent builder (Langflow, Flowise, and similar) must authenticate every endpoint that can reach a code-execution path - validate-code, flow-build, flow-run, public-flow endpoints - and must never run flow-supplied or request-supplied code through a compile-and-run / dynamic-evaluation path with host privileges. Place the builder behind authenticated access control, never expose it to untrusted networks, and sandbox any code the platform executes on a user's behalf (no filesystem/network/process access beyond the flow's intent). The distinguishing test: send an unauthenticated request to each flow validate/build/run endpoint on a staging instance with a payload that attempts a non-flow action (a shell or network call) and confirm it is refused before any code runs - paper 'AI platform' policies that leave a public endpoint wired to a code-execution sink still permit unauthenticated RCE.",
4803
+ "evidence": "https://www.vulncheck.com/blog/langflow-rce",
4804
+ "gap_closes": [
4805
+ "NIST-800-53-AC-3",
4806
+ "NIST-800-53-SI-3",
4807
+ "ALL-AI-PIPELINE-INTEGRITY"
4808
+ ]
4809
+ }
4810
+ ],
4811
+ "_auto_imported": false,
4812
+ "_intake_method": "manual-verified-curation"
4813
+ },
4814
+ "CVE-2025-1796": {
4815
+ "name": "Dify Weak-PRNG Password Reset Account Takeover",
4816
+ "lesson_date": "2026-05-26",
4817
+ "attack_vector": {
4818
+ "description": "Dify generates password-reset codes with a weak PRNG (random.randint) rather than a cryptographically secure RNG, so an attacker predicts the reset code and takes over any account, including administrators.",
4819
+ "privileges_required": "low (an account to trigger the predictable reset; takeover reaches admin)",
4820
+ "complexity": "low",
4821
+ "ai_factor": "The abused surface is Dify, a low-code LLM application-development platform. The lesson: an AI app's password-recovery flow is an authentication-integrity control - the predictable reset-code half of a takeover chain that ends in full admin control; reset tokens must be CSPRNG-generated AND verified server-side."
4822
+ },
4823
+ "framework_coverage": {
4824
+ "NIST-800-53-IA-2": {
4825
+ "covered": true,
4826
+ "adequate": false,
4827
+ "gap": "The LLM app's password-recovery flow lets an attacker authenticate as any user, including admin."
4828
+ },
4829
+ "NIST-800-53-AC-3": {
4830
+ "covered": true,
4831
+ "adequate": false,
4832
+ "gap": "A predictable reset code grants control of any account."
4833
+ },
4834
+ "ALL-AI-PIPELINE-INTEGRITY": {
4835
+ "covered": false,
4836
+ "adequate": false,
4837
+ "gap": "No framework treats an LLM app platform's password-recovery flow as an authentication-integrity control whose failure yields full account takeover."
4838
+ }
4839
+ },
4840
+ "compliance_exposure_score": {
4841
+ "percent_audit_passing_orgs_still_exposed": 82,
4842
+ "basis": "LLM app platforms ship self-service password recovery; reset-token generation and verification are rarely audited, and weak PRNG / missing verification persist.",
4843
+ "theater_pattern": "ai_app_weak_password_recovery"
4844
+ },
4845
+ "ai_discovered_zeroday": false,
4846
+ "ai_discovery_source": "human_researcher",
4847
+ "ai_assist_factor": "none",
4848
+ "new_control_requirements": [
4849
+ {
4850
+ "id": "NEW-CTRL-108",
4851
+ "name": "AI-APP-PASSWORD-RECOVERY-INTEGRITY",
4852
+ "description": "An AI application's password-reset / account-recovery flow must (1) generate reset tokens with a cryptographically secure RNG (e.g. secrets / os.urandom - never random.randint or another predictable PRNG), making them long, single-use, and short-lived; and (2) verify the reset token server-side, bound to the requesting account, before accepting a new password - the reset endpoint must never perform a reset without a valid, matching, unexpired token. Rate-limit reset attempts. The distinguishing test: on a staging instance, request a reset and confirm the code is unpredictable across requests, and confirm POSTing to the reset endpoint with a wrong/absent code is rejected - an AI app whose recovery flow uses a weak PRNG or skips token verification permits takeover of any account, including administrators.",
4853
+ "evidence": "https://github.com/advisories/GHSA-cvg9-334x-w586",
4854
+ "gap_closes": [
4855
+ "NIST-800-53-IA-2",
4856
+ "NIST-800-53-AC-3",
4857
+ "ALL-AI-PIPELINE-INTEGRITY"
4858
+ ]
4859
+ }
4860
+ ],
4861
+ "_auto_imported": false,
4862
+ "_intake_method": "manual-verified-curation"
4863
+ },
4864
+ "CVE-2024-12776": {
4865
+ "name": "Dify Unverified Password-Reset Endpoint Account Takeover",
4866
+ "lesson_date": "2026-05-26",
4867
+ "attack_vector": {
4868
+ "description": "Dify's /forgot-password/resets endpoint does not verify the reset code before allowing a password reset, so an attacker resets any user's password (including admin) without a valid code.",
4869
+ "privileges_required": "none (unauthenticated reset of any account)",
4870
+ "complexity": "high",
4871
+ "ai_factor": "The abused surface is Dify, a low-code LLM application-development platform. The lesson: an AI app's password-recovery flow is an authentication-integrity control - the unverified-reset-endpoint half of a takeover chain that ends in full admin control; reset tokens must be CSPRNG-generated AND verified server-side."
4872
+ },
4873
+ "framework_coverage": {
4874
+ "NIST-800-53-IA-2": {
4875
+ "covered": true,
4876
+ "adequate": false,
4877
+ "gap": "The LLM app's password-recovery flow lets an attacker authenticate as any user, including admin."
4878
+ },
4879
+ "NIST-800-53-AC-3": {
4880
+ "covered": true,
4881
+ "adequate": false,
4882
+ "gap": "An unverified reset endpoint grants control of any account."
4883
+ },
4884
+ "ALL-AI-PIPELINE-INTEGRITY": {
4885
+ "covered": false,
4886
+ "adequate": false,
4887
+ "gap": "No framework treats an LLM app platform's password-recovery flow as an authentication-integrity control whose failure yields full account takeover."
4888
+ }
4889
+ },
4890
+ "compliance_exposure_score": {
4891
+ "percent_audit_passing_orgs_still_exposed": 82,
4892
+ "basis": "LLM app platforms ship self-service password recovery; reset-token generation and verification are rarely audited, and weak PRNG / missing verification persist.",
4893
+ "theater_pattern": "ai_app_weak_password_recovery"
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-108",
4901
+ "name": "AI-APP-PASSWORD-RECOVERY-INTEGRITY",
4902
+ "description": "An AI application's password-reset / account-recovery flow must (1) generate reset tokens with a cryptographically secure RNG (e.g. secrets / os.urandom - never random.randint or another predictable PRNG), making them long, single-use, and short-lived; and (2) verify the reset token server-side, bound to the requesting account, before accepting a new password - the reset endpoint must never perform a reset without a valid, matching, unexpired token. Rate-limit reset attempts. The distinguishing test: on a staging instance, request a reset and confirm the code is unpredictable across requests, and confirm POSTing to the reset endpoint with a wrong/absent code is rejected - an AI app whose recovery flow uses a weak PRNG or skips token verification permits takeover of any account, including administrators.",
4903
+ "evidence": "https://github.com/advisories/GHSA-g394-qpx6-x7rr",
4904
+ "gap_closes": [
4905
+ "NIST-800-53-IA-2",
4906
+ "NIST-800-53-AC-3",
4907
+ "ALL-AI-PIPELINE-INTEGRITY"
4908
+ ]
4909
+ }
4910
+ ],
4911
+ "_auto_imported": false,
4912
+ "_intake_method": "manual-verified-curation"
4913
+ },
4914
+ "CVE-2025-56520": {
4915
+ "name": "Dify Remote File Upload Server-Side Request Forgery",
4916
+ "lesson_date": "2026-05-26",
4917
+ "attack_vector": {
4918
+ "description": "Dify's RemoteFileUploadApi fetches a user-supplied URL server-side without validating the destination, so an unauthenticated attacker reaches internal services or cloud metadata via the Dify server.",
4919
+ "privileges_required": "none (unauthenticated)",
4920
+ "complexity": "low",
4921
+ "ai_factor": "The abused surface is Dify, a low-code LLM application-development platform. The lesson: an LLM platform's server-side fetches must validate and allowlist destinations or become an SSRF pivot."
4922
+ },
4923
+ "framework_coverage": {
4924
+ "NIST-800-53-SC-7": {
4925
+ "covered": true,
4926
+ "adequate": false,
4927
+ "gap": "Boundary protection does not treat the LLM platform's server-side remote-file fetch as an egress that can reach internal services."
4928
+ },
4929
+ "NIST-800-53-SI-10": {
4930
+ "covered": true,
4931
+ "adequate": false,
4932
+ "gap": "No input validation is applied to the user-supplied URL before the server fetches it."
4933
+ },
4934
+ "ALL-AI-PIPELINE-INTEGRITY": {
4935
+ "covered": false,
4936
+ "adequate": false,
4937
+ "gap": "No framework treats an LLM platform's remote-file fetch as an egress that must validate and allowlist destinations."
4938
+ }
4939
+ },
4940
+ "compliance_exposure_score": {
4941
+ "percent_audit_passing_orgs_still_exposed": 78,
4942
+ "basis": "LLM platforms fetch from user-supplied URLs (remote file upload) on trusted-network assumptions; the fetch destination is not validated.",
4943
+ "theater_pattern": "ai_data_pipeline_ssrf_trust"
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-105",
4951
+ "name": "AI-DATA-PIPELINE-IMPORT-SSRF-PROTECTION",
4952
+ "description": "An AI data-pipeline platform that fetches from caller-supplied URLs or endpoints (data import, cloud-storage endpoint configuration, webhook/annotation sources) 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. Restrict who can configure server-side fetches and disable self-registration if not required. The distinguishing test: configure the import/storage URL to an internal or cloud-metadata address 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 / internal pivot, regardless of authentication posture.",
4953
+ "evidence": "https://github.com/advisories/GHSA-m238-fmcw-wh58",
4954
+ "gap_closes": [
4955
+ "NIST-800-53-SC-7",
4956
+ "NIST-800-53-SI-10",
4957
+ "ALL-AI-PIPELINE-INTEGRITY"
4958
+ ]
4959
+ }
4960
+ ],
4961
+ "_auto_imported": false,
4962
+ "_intake_method": "manual-verified-curation"
4963
+ },
4764
4964
  "CVE-2023-6571": {
4765
4965
  "name": "Kubeflow Reflected XSS",
4766
4966
  "lesson_date": "2026-05-25",