penthera 1.7.0 → 1.8.0
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 +315 -0
- package/README.md +139 -76
- package/SECURITY.md +8 -6
- package/docs/examples/pr-dependency-review.yml +1 -1
- package/lib/adaptive-probes.js +3 -3
- package/lib/advisories/evidence.js +248 -0
- package/lib/advisories/index.js +228 -0
- package/lib/advisories/products.js +83 -0
- package/lib/advisories/versions.js +65 -0
- package/lib/agents/hidden-content.js +122 -11
- package/lib/agents/index.js +26 -6
- package/lib/agents/lock.js +33 -5
- package/lib/agents/rules.js +33 -4
- package/lib/compliance/index.js +4 -4
- package/lib/crawler.js +12 -15
- package/lib/deps/capabilities.js +21 -5
- package/lib/deps/findings.js +309 -0
- package/lib/deps/index.js +13 -272
- package/lib/deps/iocs.js +74 -0
- package/lib/deps/lockfile.js +3 -8
- package/lib/deps/online.js +8 -3
- package/lib/deps/popular-packages.json.gz +0 -0
- package/lib/deps/popular-pypi.json.gz +0 -0
- package/lib/deps/python/capabilities.js +16 -3
- package/lib/deps/python/index.js +5 -1
- package/lib/deps/python/lockfiles.js +11 -5
- package/lib/deps/python/source.js +75 -26
- package/lib/deps/python/toml.js +15 -3
- package/lib/deps/source.js +28 -9
- package/lib/deps/typosquat.js +30 -5
- package/lib/fix/apply.js +253 -34
- package/lib/fix/index.js +7 -4
- package/lib/fix/model.js +25 -5
- package/lib/fix/util.js +6 -2
- package/lib/fuzzer.js +3 -3
- package/lib/git.js +65 -0
- package/lib/hook/index.js +157 -73
- package/lib/hook/policy.js +10 -4
- package/lib/install/index.js +4 -7
- package/lib/machine.js +0 -13
- package/lib/memory/store.js +11 -4
- package/lib/nuclei-loader.js +0 -25
- package/lib/owasp-wstg.js +4 -0
- package/lib/plugins.js +1 -1
- package/lib/provenance.js +1 -0
- package/lib/recon.js +12 -31
- package/lib/references.json +224 -0
- package/lib/retirejs.js +4 -4
- package/lib/rules/advisories/advisories.json +186 -0
- package/lib/rules/advisories/eol.json +413 -0
- package/lib/rules/advisories/pack.json +20 -0
- package/lib/rules/advisories/pack.json.sig +6 -0
- package/lib/rules/allowed_signers +13 -0
- package/lib/rules/core/agent-exec.json +29 -0
- package/lib/rules/core/agent-instructions.json +17 -0
- package/lib/rules/core/pack.json +30 -0
- package/lib/rules/core/pack.json.sig +6 -0
- package/lib/rules/core/secrets.json +161 -0
- package/lib/rules/core/templates.json +52 -0
- package/lib/rules/index.js +107 -0
- package/lib/rules/ioc-2025-2026/files.json +43 -0
- package/lib/rules/ioc-2025-2026/hosts.json +35 -0
- package/lib/rules/ioc-2025-2026/pack.json +25 -0
- package/lib/rules/ioc-2025-2026/pack.json.sig +6 -0
- package/lib/rules/ioc-2025-2026/packages.json +1048 -0
- package/lib/rules/pack.js +452 -0
- package/lib/rules/regex-guard.js +81 -9
- package/lib/rules/sshsig.js +205 -0
- package/lib/templates.js +24 -20
- package/lib/tmp.js +21 -0
- package/lib/whitebox/frameworks.js +1 -1
- package/lib/whitebox/secrets.js +117 -41
- package/package.json +12 -4
- package/scripts/rules/build-pack.mjs +80 -0
- package/scripts/rules/check-bundled.mjs +30 -0
- package/scripts/rules/sign-pack.sh +32 -0
- package/skills/penthera/SKILL.md +16 -15
- package/src/agent/git.js +147 -14
- package/src/agent/loop.js +165 -46
- package/src/cli/agent.js +11 -5
- package/src/cli/deps.js +0 -2
- package/src/cli/detect.js +14 -7
- package/src/cli/fix.js +26 -8
- package/src/cli/hook.js +2 -1
- package/src/cli/onboarding.js +14 -6
- package/src/cli/report-outputs.js +1 -0
- package/src/cli/rules.js +144 -0
- package/src/cli/ui.js +43 -10
- package/src/cli.js +24 -1
- package/src/report/evidence.js +105 -21
- package/src/report/footer.js +1 -1
- package/src/report/md-escape.js +8 -0
- package/src/scan-repo.js +6 -0
- package/src/scan-url.js +11 -3
- package/src/ui/api/data.js +39 -6
- package/src/ui/api/routes.js +44 -11
- package/src/ui/api/runs.js +32 -7
- package/src/ui/security.js +20 -23
- package/src/ui/server.js +52 -27
- package/src/ui/static/app.css +583 -213
- package/src/ui/static/favicon.svg +1 -1
- package/src/ui/static/fonts/DepartureMono-LICENSE.txt +93 -0
- package/src/ui/static/fonts/DepartureMono-Regular.woff2 +0 -0
- package/src/ui/static/index.html +5 -4
- package/src/ui/static/js/api.js +114 -6
- package/src/ui/static/js/app.js +81 -42
- package/src/ui/static/js/center.js +246 -133
- package/src/ui/static/js/charts.js +99 -18
- package/src/ui/static/js/copy.js +68 -9
- package/src/ui/static/js/dialog.js +152 -0
- package/src/ui/static/js/left.js +23 -60
- package/src/ui/static/js/menubar.js +170 -0
- package/src/ui/static/js/onboarding.js +104 -0
- package/src/ui/static/js/panels.js +186 -0
- package/src/ui/static/js/right.js +69 -188
- package/src/ui/static/js/state.js +36 -5
- package/src/ui/static/logo.svg +10 -0
- package/src/ui/static/mark.svg +3 -0
- package/src/utils/http.js +162 -13
- package/docs/METHODOLOGY.md +0 -375
- package/docs/commands/README.md +0 -24
- package/docs/commands/action.md +0 -21
- package/docs/commands/agents.md +0 -38
- package/docs/commands/deps.md +0 -115
- package/docs/commands/fix.md +0 -53
- package/docs/commands/hook.md +0 -69
- package/docs/commands/init.md +0 -114
- package/docs/commands/install.md +0 -53
- package/docs/commands/scan.md +0 -100
- package/docs/commands/skill.md +0 -58
- package/docs/compare/README.md +0 -25
- package/docs/compare/github.md +0 -60
- package/docs/compare/semgrep.md +0 -54
- package/docs/compare/snyk.md +0 -62
- package/docs/compare/socket.md +0 -78
- package/docs/compare/zap.md +0 -59
- package/docs/compliance-cra.md +0 -141
- package/docs/compliance-nis2.md +0 -168
- package/docs/dashboard.md +0 -187
- package/docs/evidence.md +0 -162
- package/docs/funding/due-diligence-checklist.md +0 -79
- package/docs/funding/nlnet-ngi-zero-draft.md +0 -273
- package/docs/funding/partner-one-pager.md +0 -84
- package/docs/funding/sponsor-tiers.md +0 -81
- package/docs/index.md +0 -81
- package/docs/internal-audit.md +0 -83
- package/docs/local-loop.md +0 -276
- package/docs/marketing.md +0 -151
- package/docs/owasp-wstg-coverage.md +0 -79
- package/docs/plan.md +0 -102
- package/docs/privacy.md +0 -38
- package/docs/references.bib +0 -559
- package/docs/references.md +0 -119
- package/docs/release-plan.md +0 -228
- package/docs/research/socket-positioning-notes.md +0 -183
- package/docs/use-cases/README.md +0 -14
- package/docs/use-cases/agencies.md +0 -71
- package/docs/use-cases/ai-coding-teams.md +0 -81
- package/docs/use-cases/eu-sme-compliance.md +0 -68
- package/docs/use-cases/open-source-maintainers.md +0 -75
- package/docs/use-cases/solo-founder.md +0 -65
- package/lib/deps/popular-packages.json +0 -1
- package/lib/deps/popular-pypi.json +0 -1
package/lib/references.json
CHANGED
|
@@ -30,6 +30,10 @@
|
|
|
30
30
|
"meli2019bad",
|
|
31
31
|
"basak2023secretbench"
|
|
32
32
|
],
|
|
33
|
+
"unchecked": [
|
|
34
|
+
"meli2019bad",
|
|
35
|
+
"basak2023secretbench"
|
|
36
|
+
],
|
|
33
37
|
"sqli": [
|
|
34
38
|
"owaspwstg42",
|
|
35
39
|
"owasp2025top10",
|
|
@@ -82,6 +86,11 @@
|
|
|
82
86
|
"zimmermann2019small",
|
|
83
87
|
"ladisa2023sok"
|
|
84
88
|
],
|
|
89
|
+
"runtime-advisory": [
|
|
90
|
+
"owaspwstg42",
|
|
91
|
+
"ncsc2024webapps",
|
|
92
|
+
"redhatbackporting"
|
|
93
|
+
],
|
|
85
94
|
"js-vulnerability": [
|
|
86
95
|
"lauinger2017thou",
|
|
87
96
|
"zimmermann2019small"
|
|
@@ -237,6 +246,11 @@
|
|
|
237
246
|
"title": "The Protection of Information in Computer Systems",
|
|
238
247
|
"url": "https://doi.org/10.1109/PROC.1975.9939"
|
|
239
248
|
},
|
|
249
|
+
"schneier1999secure": {
|
|
250
|
+
"cite": "Schneier & Kelsey 1999",
|
|
251
|
+
"title": "Secure Audit Logs to Support Computer Forensics",
|
|
252
|
+
"url": "https://doi.org/10.1145/317087.317089"
|
|
253
|
+
},
|
|
240
254
|
"shostack2014threat": {
|
|
241
255
|
"cite": "Shostack 2014",
|
|
242
256
|
"title": "Threat Modeling: Designing for Security",
|
|
@@ -417,6 +431,36 @@
|
|
|
417
431
|
"title": "OWASP Top 10 for Agentic Applications for 2026",
|
|
418
432
|
"url": "https://genai.owasp.org/resource/owasp-top-10-for-agentic-applications-for-2026/"
|
|
419
433
|
},
|
|
434
|
+
"amodei2016concrete": {
|
|
435
|
+
"cite": "Amodei et al. 2016",
|
|
436
|
+
"title": "Concrete Problems in AI Safety",
|
|
437
|
+
"url": "https://doi.org/10.48550/arXiv.1606.06565"
|
|
438
|
+
},
|
|
439
|
+
"baker2025monitoring": {
|
|
440
|
+
"cite": "Baker et al. 2025",
|
|
441
|
+
"title": "Monitoring Reasoning Models for Misbehavior and the Risks of Promoting Obfuscation",
|
|
442
|
+
"url": "https://doi.org/10.48550/arXiv.2503.11926"
|
|
443
|
+
},
|
|
444
|
+
"anthropic2026incidents": {
|
|
445
|
+
"cite": "Anthropic incidents (2026)",
|
|
446
|
+
"title": "Investigating Three Real-World Incidents in Our Cybersecurity Evaluations",
|
|
447
|
+
"url": "https://www.anthropic.com/news/investigating-incidents-cybersecurity-evals"
|
|
448
|
+
},
|
|
449
|
+
"openai2026incident": {
|
|
450
|
+
"cite": "OpenAI incident report (2026)",
|
|
451
|
+
"title": "OpenAI–Hugging Face Incident: Technical Report",
|
|
452
|
+
"url": "https://cdn.openai.com/pdf/67869394-cb91-4c12-888c-5cbd85c7814c/OpenAI-Hugging-Face%20Incident-Technical-Report.pdf"
|
|
453
|
+
},
|
|
454
|
+
"metr2026investigation": {
|
|
455
|
+
"cite": "METR and Redwood (2026)",
|
|
456
|
+
"title": "Brief Independent Investigation of Agents' Behavior, Reasoning and Collaboration in the OpenAI / Hugging Face Hacking Incident",
|
|
457
|
+
"url": "https://metr.org/hugging-face-incident-report-aug-2026.pdf"
|
|
458
|
+
},
|
|
459
|
+
"zhong2025impossiblebench": {
|
|
460
|
+
"cite": "Zhong et al. 2025",
|
|
461
|
+
"title": "ImpossibleBench: Measuring LLMs' Propensity of Exploiting Test Cases",
|
|
462
|
+
"url": "https://doi.org/10.48550/arXiv.2510.20270"
|
|
463
|
+
},
|
|
420
464
|
"owasp2025mcptop10": {
|
|
421
465
|
"cite": "OWASP MCP Top 10",
|
|
422
466
|
"title": "OWASP MCP Top 10",
|
|
@@ -446,6 +490,186 @@
|
|
|
446
490
|
"cite": "SPDX License List",
|
|
447
491
|
"title": "SPDX License List",
|
|
448
492
|
"url": "https://spdx.org/licenses/"
|
|
493
|
+
},
|
|
494
|
+
"tabassi2023airmf": {
|
|
495
|
+
"cite": "NIST AI RMF",
|
|
496
|
+
"title": "Artificial Intelligence Risk Management Framework (AI RMF 1.0)",
|
|
497
|
+
"url": "https://doi.org/10.6028/NIST.AI.100-1"
|
|
498
|
+
},
|
|
499
|
+
"lee2002detecting": {
|
|
500
|
+
"cite": "Lee et al. 2002",
|
|
501
|
+
"title": "Detecting and Defending against Web-Server Fingerprinting",
|
|
502
|
+
"url": "https://doi.org/10.1109/CSAC.2002.1176304"
|
|
503
|
+
},
|
|
504
|
+
"kar2022httpfuzz": {
|
|
505
|
+
"cite": "Kar et al. 2022",
|
|
506
|
+
"title": "HTTPFuzz: Web Server Fingerprinting with HTTP Request Fuzzing",
|
|
507
|
+
"url": "https://doi.org/10.5220/0011328900003283"
|
|
508
|
+
},
|
|
509
|
+
"lavrenovs2018http": {
|
|
510
|
+
"cite": "Lavrenovs & Melon 2018",
|
|
511
|
+
"title": "HTTP Security Headers Analysis of Top One Million Websites",
|
|
512
|
+
"url": "https://doi.org/10.23919/CYCON.2018.8405025"
|
|
513
|
+
},
|
|
514
|
+
"lyon2009nmap": {
|
|
515
|
+
"cite": "Lyon 2009",
|
|
516
|
+
"title": "Nmap Network Scanning: The Official Nmap Project Guide to Network Discovery and Security Scanning",
|
|
517
|
+
"url": "https://nmap.org/book/vscan.html"
|
|
518
|
+
},
|
|
519
|
+
"durumeric2014heartbleed": {
|
|
520
|
+
"cite": "Durumeric et al. 2014",
|
|
521
|
+
"title": "The Matter of Heartbleed",
|
|
522
|
+
"url": "https://doi.org/10.1145/2663716.2663755"
|
|
523
|
+
},
|
|
524
|
+
"nappa2015clones": {
|
|
525
|
+
"cite": "Nappa et al. 2015",
|
|
526
|
+
"title": "The Attack of the Clones: A Study of the Impact of Shared Code on Vulnerability Patching",
|
|
527
|
+
"url": "https://doi.org/10.1109/SP.2015.48"
|
|
528
|
+
},
|
|
529
|
+
"li2017largescale": {
|
|
530
|
+
"cite": "Li & Paxson 2017",
|
|
531
|
+
"title": "A Large-Scale Empirical Study of Security Patches",
|
|
532
|
+
"url": "https://doi.org/10.1145/3133956.3134072"
|
|
533
|
+
},
|
|
534
|
+
"vasek2016hacking": {
|
|
535
|
+
"cite": "Vasek et al. 2016",
|
|
536
|
+
"title": "Hacking Is Not Random: A Case-Control Study of Webserver-Compromise Risk",
|
|
537
|
+
"url": "https://doi.org/10.1109/TDSC.2015.2427847"
|
|
538
|
+
},
|
|
539
|
+
"stock2016hey": {
|
|
540
|
+
"cite": "Stock et al. 2016",
|
|
541
|
+
"title": "Hey, You Have a Problem: On the Feasibility of Large-Scale Web Vulnerability Notification",
|
|
542
|
+
"url": "https://www.usenix.org/conference/usenixsecurity16/technical-sessions/presentation/stock"
|
|
543
|
+
},
|
|
544
|
+
"zhang2018precise": {
|
|
545
|
+
"cite": "Zhang & Qian 2018",
|
|
546
|
+
"title": "Precise and Accurate Patch Presence Test for Binaries",
|
|
547
|
+
"url": "https://www.usenix.org/conference/usenixsecurity18/presentation/zhang-hang"
|
|
548
|
+
},
|
|
549
|
+
"ossfosvschema": {
|
|
550
|
+
"cite": "OSV schema",
|
|
551
|
+
"title": "Open Source Vulnerability Format",
|
|
552
|
+
"url": "https://ossf.github.io/osv-schema/"
|
|
553
|
+
},
|
|
554
|
+
"cisakev": {
|
|
555
|
+
"cite": "CISA KEV",
|
|
556
|
+
"title": "Known Exploited Vulnerabilities Catalog",
|
|
557
|
+
"url": "https://www.cisa.gov/known-exploited-vulnerabilities-catalog"
|
|
558
|
+
},
|
|
559
|
+
"first2023cvss4": {
|
|
560
|
+
"cite": "CVSS v4.0",
|
|
561
|
+
"title": "Common Vulnerability Scoring System Version 4.0: Specification Document",
|
|
562
|
+
"url": "https://www.first.org/cvss/v4.0/specification-document"
|
|
563
|
+
},
|
|
564
|
+
"oasis2022csaf": {
|
|
565
|
+
"cite": "CSAF 2.0",
|
|
566
|
+
"title": "Common Security Advisory Framework Version 2.0",
|
|
567
|
+
"url": "https://docs.oasis-open.org/csaf/csaf/v2.0/os/csaf-v2.0-os.html"
|
|
568
|
+
},
|
|
569
|
+
"endoflifedate": {
|
|
570
|
+
"cite": "endoflife.date",
|
|
571
|
+
"title": "endoflife.date",
|
|
572
|
+
"url": "https://endoflife.date/"
|
|
573
|
+
},
|
|
574
|
+
"phpsupported": {
|
|
575
|
+
"cite": "PHP supported versions",
|
|
576
|
+
"title": "Supported Versions",
|
|
577
|
+
"url": "https://www.php.net/supported-versions.php"
|
|
578
|
+
},
|
|
579
|
+
"phpsrcadvisories": {
|
|
580
|
+
"cite": "php-src security advisories",
|
|
581
|
+
"title": "Security Advisories for php/php-src",
|
|
582
|
+
"url": "https://github.com/php/php-src/security/advisories"
|
|
583
|
+
},
|
|
584
|
+
"httpdvulns24": {
|
|
585
|
+
"cite": "Apache httpd 2.4 vulnerabilities",
|
|
586
|
+
"title": "Apache HTTP Server 2.4 Vulnerabilities",
|
|
587
|
+
"url": "https://httpd.apache.org/security/vulnerabilities_24.html"
|
|
588
|
+
},
|
|
589
|
+
"nodejsreleases": {
|
|
590
|
+
"cite": "Node.js releases",
|
|
591
|
+
"title": "Node.js Releases",
|
|
592
|
+
"url": "https://nodejs.org/en/about/previous-releases"
|
|
593
|
+
},
|
|
594
|
+
"pythondevguideversions": {
|
|
595
|
+
"cite": "Python version status",
|
|
596
|
+
"title": "Status of Python Versions",
|
|
597
|
+
"url": "https://devguide.python.org/versions/"
|
|
598
|
+
},
|
|
599
|
+
"nginxadvisories": {
|
|
600
|
+
"cite": "nginx security advisories",
|
|
601
|
+
"title": "nginx Security Advisories",
|
|
602
|
+
"url": "https://nginx.org/en/security_advisories.html"
|
|
603
|
+
},
|
|
604
|
+
"opensslvulns": {
|
|
605
|
+
"cite": "OpenSSL vulnerabilities",
|
|
606
|
+
"title": "Vulnerabilities",
|
|
607
|
+
"url": "https://openssl-library.org/news/vulnerabilities/"
|
|
608
|
+
},
|
|
609
|
+
"redhatbackporting": {
|
|
610
|
+
"cite": "Red Hat backporting",
|
|
611
|
+
"title": "Security Backporting Practice",
|
|
612
|
+
"url": "https://access.redhat.com/security/updates/backporting"
|
|
613
|
+
},
|
|
614
|
+
"ubuntusecurityfaq": {
|
|
615
|
+
"cite": "Ubuntu Security FAQ",
|
|
616
|
+
"title": "Security/FAQ",
|
|
617
|
+
"url": "https://wiki.ubuntu.com/SecurityTeam/FAQ"
|
|
618
|
+
},
|
|
619
|
+
"debiansecurityfaq": {
|
|
620
|
+
"cite": "Debian security FAQ",
|
|
621
|
+
"title": "Debian Security FAQ",
|
|
622
|
+
"url": "https://www.debian.org/security/faq"
|
|
623
|
+
},
|
|
624
|
+
"phpexposephp": {
|
|
625
|
+
"cite": "PHP expose\\_php",
|
|
626
|
+
"title": "Description of Core php.ini Directives: expose\\_php",
|
|
627
|
+
"url": "https://www.php.net/manual/en/ini.core.php"
|
|
628
|
+
},
|
|
629
|
+
"devcore2024cve4577": {
|
|
630
|
+
"cite": "DEVCORE CVE-2024-4577",
|
|
631
|
+
"title": "Security Alert: CVE-2024-4577 - PHP CGI Argument Injection Vulnerability",
|
|
632
|
+
"url": "https://devco.re/blog/2024/06/06/security-alert-cve-2024-4577-php-cgi-argument-injection-vulnerability-en/"
|
|
633
|
+
},
|
|
634
|
+
"censys2024cve4577": {
|
|
635
|
+
"cite": "Censys CVE-2024-4577",
|
|
636
|
+
"title": "PHP-CGI Argument Injection Vulnerability Could Lead to Remote Code Execution",
|
|
637
|
+
"url": "https://censys.com/advisory/cve-2024-4577/"
|
|
638
|
+
},
|
|
639
|
+
"php2012cgi": {
|
|
640
|
+
"cite": "PHP CGI flaw (2012)",
|
|
641
|
+
"title": "PHP 5.3.12 and 5.4.2 and the CGI Flaw (CVE-2012-1823)",
|
|
642
|
+
"url": "https://www.php.net/archive/2012.php#id2012-05-06-1"
|
|
643
|
+
},
|
|
644
|
+
"nucleiphpdetect": {
|
|
645
|
+
"cite": "Nuclei php-detect",
|
|
646
|
+
"title": "nuclei-templates: php-detect.yaml",
|
|
647
|
+
"url": "https://github.com/projectdiscovery/nuclei-templates/blob/main/http/technologies/php-detect.yaml"
|
|
648
|
+
},
|
|
649
|
+
"php2026critical": {
|
|
650
|
+
"cite": "PHP advance notice (2026-10-20)",
|
|
651
|
+
"title": "Upcoming Critical PHP Security Release",
|
|
652
|
+
"url": "https://www.php.net/archive/2026.php#2026-10-20-1"
|
|
653
|
+
},
|
|
654
|
+
"ncscadvisories": {
|
|
655
|
+
"cite": "NCSC-NL Security Advisories",
|
|
656
|
+
"title": "Security Advisories",
|
|
657
|
+
"url": "https://advisories.ncsc.nl/"
|
|
658
|
+
},
|
|
659
|
+
"ncsc2024webapps": {
|
|
660
|
+
"cite": "NCSC ICT-beveiligingsrichtlijnen webapplicaties (2024)",
|
|
661
|
+
"title": "ICT-beveiligingsrichtlijnen voor webapplicaties",
|
|
662
|
+
"url": "https://www.ncsc.nl/api/media/sites/default/files/Richtlijn%20ICT%20beveiligingsrichtlijnen%20webapplicaties%2007-24_0.pdf"
|
|
663
|
+
},
|
|
664
|
+
"ncsc2015webapps": {
|
|
665
|
+
"cite": "NCSC ICT-beveiligingsrichtlijnen webapplicaties (2015)",
|
|
666
|
+
"title": "ICT-beveiligingsrichtlijnen voor webapplicaties: Richtlijnen",
|
|
667
|
+
"url": "https://www.ncsc.nl/binaries/ncsc/documenten/publicaties/2019/mei/01/ict-beveiligingsrichtlijnen-voor-webapplicaties/ICT-Beveiligingsrichtlijnen-voor-Webapplicaties-Richtlijnen-Leesversie.pdf"
|
|
668
|
+
},
|
|
669
|
+
"nos2026phpliveblog": {
|
|
670
|
+
"cite": "NOS liveblog (2026-10-21)",
|
|
671
|
+
"title": "Websites kwetsbaar voor softwarelek: RTL Nieuws, DigiD en MijnOverheid uit de lucht",
|
|
672
|
+
"url": "https://nos.nl/liveblog/2636066-websites-kwetsbaar-voor-softwarelek-digid-en-mijnoverheid-uit-de-lucht"
|
|
449
673
|
}
|
|
450
674
|
}
|
|
451
675
|
}
|
package/lib/retirejs.js
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
*/
|
|
19
19
|
import { readFileSync } from "node:fs";
|
|
20
20
|
import { gunzipSync } from "node:zlib";
|
|
21
|
-
import { safeFetch, currentEgress } from "../src/utils/http.js";
|
|
21
|
+
import { safeFetch, currentEgress, readBody, readJson } from "../src/utils/http.js";
|
|
22
22
|
|
|
23
23
|
// Upstream RetireJS repository. This previously pointed at a personal fork that
|
|
24
24
|
// now 404s, which made every scan silently report "no vulnerable libraries".
|
|
@@ -60,7 +60,7 @@ async function loadLive() {
|
|
|
60
60
|
const res = await safeFetch(url, { timeout: 15_000, probe: false, redirect: "follow" });
|
|
61
61
|
if (!res || !res.ok) continue;
|
|
62
62
|
try {
|
|
63
|
-
const db = await res
|
|
63
|
+
const db = await readJson(res);
|
|
64
64
|
if (db && typeof db === "object" && Object.keys(db).length > 0) {
|
|
65
65
|
cachedLive = { db, source: "live", url };
|
|
66
66
|
cachedAt = Date.now();
|
|
@@ -259,7 +259,7 @@ export async function scanJsLibraries(baseUrl, opts = {}) {
|
|
|
259
259
|
// Fetch the target page HTML
|
|
260
260
|
const res = await safeFetch(baseUrl, { timeout, probe: "retirejs", redirect: "follow" });
|
|
261
261
|
if (!res || !res.ok) return result;
|
|
262
|
-
const html = await res
|
|
262
|
+
const html = await readBody(res).catch(() => "");
|
|
263
263
|
|
|
264
264
|
// Extract script URLs and inline scripts
|
|
265
265
|
const scripts = extractScripts(html, baseUrl);
|
|
@@ -298,7 +298,7 @@ export async function scanJsLibraries(baseUrl, opts = {}) {
|
|
|
298
298
|
|
|
299
299
|
const jsRes = await safeFetch(scriptUrl, { timeout: 5_000, probe: "retirejs", redirect: "follow" });
|
|
300
300
|
if (!jsRes || !jsRes.ok) continue;
|
|
301
|
-
const jsContent = await jsRes
|
|
301
|
+
const jsContent = await readBody(jsRes).catch(() => "");
|
|
302
302
|
if (jsContent.length > 0) {
|
|
303
303
|
detectedVersion = extractVersion(jsContent, libData.extractors.filecontent);
|
|
304
304
|
if (detectedVersion) break;
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
{
|
|
2
|
+
"kind": "runtime-advisory",
|
|
3
|
+
"rules": [
|
|
4
|
+
{
|
|
5
|
+
"id": "php-cve-2026-109618",
|
|
6
|
+
"product": "php",
|
|
7
|
+
"title": "PHP remote code execution via out-of-memory state corruption",
|
|
8
|
+
"severity": "critical",
|
|
9
|
+
"cves": [
|
|
10
|
+
"CVE-2026-109618"
|
|
11
|
+
],
|
|
12
|
+
"ghsa": [
|
|
13
|
+
"GHSA-w8hw-w9fx-j79w"
|
|
14
|
+
],
|
|
15
|
+
"cvss": {
|
|
16
|
+
"version": "4.0",
|
|
17
|
+
"score": 9.2
|
|
18
|
+
},
|
|
19
|
+
"fixed": [
|
|
20
|
+
{
|
|
21
|
+
"branch": "8.2",
|
|
22
|
+
"version": "8.2.35"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"branch": "8.3",
|
|
26
|
+
"version": "8.3.36"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"branch": "8.4",
|
|
30
|
+
"version": "8.4.27"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"branch": "8.5",
|
|
34
|
+
"version": "8.5.12"
|
|
35
|
+
}
|
|
36
|
+
],
|
|
37
|
+
"source": "https://github.com/php/php-src/security/advisories/GHSA-w8hw-w9fx-j79w",
|
|
38
|
+
"date": "2026-10-21",
|
|
39
|
+
"confidence": "confirmed",
|
|
40
|
+
"references": [
|
|
41
|
+
"phpsrcadvisories",
|
|
42
|
+
"php2026critical"
|
|
43
|
+
],
|
|
44
|
+
"description": "php-src rates it Critical (CVSS 4.0 9.2): an out-of-memory error during multipart request parsing leaves request memory in an invalid state that shutdown then processes. php-src confirms it on Apache mod_php before any application code runs, finds FPM susceptible by source analysis, and FrankenPHP and LSAPI likely susceptible. Updating is the only complete mitigation; memory_limit=-1 is a partial workaround. Fixed in 8.2.35, 8.3.36, 8.4.27 and 8.5.12; published 21 Oct 2026. PHP's security advisory of 21 Oct 2026 (https://www.php.net/archive/2026.php#2026-10-21-5) lists every web SAPI as at risk (PHP-FPM, Apache mod_php, php-cgi, FrankenPHP, LiteSpeed), the risk highest for mod_php, and says Linux distributions and LTS vendors received the patches in advance, so distribution packages are fixed under their own version numbers."
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"id": "php-cve-2026-109619",
|
|
48
|
+
"product": "php",
|
|
49
|
+
"title": "PHP remote code execution via stale global state (use after free across requests)",
|
|
50
|
+
"severity": "critical",
|
|
51
|
+
"cves": [
|
|
52
|
+
"CVE-2026-109619"
|
|
53
|
+
],
|
|
54
|
+
"ghsa": [
|
|
55
|
+
"GHSA-6wmf-4rv5-p3rp"
|
|
56
|
+
],
|
|
57
|
+
"cvss": {
|
|
58
|
+
"version": "4.0",
|
|
59
|
+
"score": 9.2
|
|
60
|
+
},
|
|
61
|
+
"fixed": [
|
|
62
|
+
{
|
|
63
|
+
"branch": "8.2",
|
|
64
|
+
"version": "8.2.35"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"branch": "8.3",
|
|
68
|
+
"version": "8.3.36"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"branch": "8.4",
|
|
72
|
+
"version": "8.4.27"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"branch": "8.5",
|
|
76
|
+
"version": "8.5.12"
|
|
77
|
+
}
|
|
78
|
+
],
|
|
79
|
+
"source": "https://github.com/php/php-src/security/advisories/GHSA-6wmf-4rv5-p3rp",
|
|
80
|
+
"date": "2026-10-21",
|
|
81
|
+
"confidence": "confirmed",
|
|
82
|
+
"references": [
|
|
83
|
+
"phpsrcadvisories",
|
|
84
|
+
"php2026critical"
|
|
85
|
+
],
|
|
86
|
+
"description": "php-src rates it Critical (CVSS 4.0 9.2): worker-global state that points into a freed request heap is read by the next request on the same worker before initialization resets it. Fixed in 8.2.35, 8.3.36, 8.4.27 and 8.5.12; published 21 Oct 2026. PHP's security advisory of 21 Oct 2026 (https://www.php.net/archive/2026.php#2026-10-21-5) lists every web SAPI as at risk (PHP-FPM, Apache mod_php, php-cgi, FrankenPHP, LiteSpeed), the risk highest for mod_php, and says Linux distributions and LTS vendors received the patches in advance, so distribution packages are fixed under their own version numbers."
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"id": "php-cve-2024-4577",
|
|
90
|
+
"product": "php",
|
|
91
|
+
"title": "PHP-CGI argument injection on Windows (bypass of CVE-2012-1823)",
|
|
92
|
+
"severity": "high",
|
|
93
|
+
"cves": [
|
|
94
|
+
"CVE-2024-4577"
|
|
95
|
+
],
|
|
96
|
+
"ghsa": [
|
|
97
|
+
"GHSA-3qgc-jrrr-25jv"
|
|
98
|
+
],
|
|
99
|
+
"condition": "PHP runs as CGI (php-cgi, for example through Apache with an Action/SetHandler to php-cgi) on Windows, where code-page conversion of the query string re-enables argument injection",
|
|
100
|
+
"fixed": [
|
|
101
|
+
{
|
|
102
|
+
"branch": "8.1",
|
|
103
|
+
"version": "8.1.29"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"branch": "8.2",
|
|
107
|
+
"version": "8.2.20"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"branch": "8.3",
|
|
111
|
+
"version": "8.3.8"
|
|
112
|
+
}
|
|
113
|
+
],
|
|
114
|
+
"source": "https://github.com/php/php-src/security/advisories/GHSA-3qgc-jrrr-25jv",
|
|
115
|
+
"date": "2024-06-06",
|
|
116
|
+
"confidence": "confirmed",
|
|
117
|
+
"description": "Reported by Orange Tsai (DEVCORE). The php-src advisory rates it High and lists the patched versions 8.1.29, 8.2.20 and 8.3.8 (PHP 8 ChangeLog, 6 June 2024).",
|
|
118
|
+
"references": [
|
|
119
|
+
"phpsrcadvisories",
|
|
120
|
+
"devcore2024cve4577",
|
|
121
|
+
"censys2024cve4577",
|
|
122
|
+
"cisakev"
|
|
123
|
+
],
|
|
124
|
+
"kev": "2024-06-12"
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"id": "php-cve-2024-8926",
|
|
128
|
+
"product": "php",
|
|
129
|
+
"title": "PHP-CGI parameter injection on Windows (bypass of CVE-2024-4577)",
|
|
130
|
+
"severity": "medium",
|
|
131
|
+
"cves": [
|
|
132
|
+
"CVE-2024-8926"
|
|
133
|
+
],
|
|
134
|
+
"ghsa": [
|
|
135
|
+
"GHSA-p99j-rfp4-xqvq"
|
|
136
|
+
],
|
|
137
|
+
"condition": "PHP runs as CGI on Windows with a non-standard code-page setting (the ACP code page pointed at an OEM code page in the registry), which php-src calls unlikely in a real environment",
|
|
138
|
+
"fixed": [
|
|
139
|
+
{
|
|
140
|
+
"branch": "8.1",
|
|
141
|
+
"version": "8.1.30"
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"branch": "8.2",
|
|
145
|
+
"version": "8.2.24"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"branch": "8.3",
|
|
149
|
+
"version": "8.3.12"
|
|
150
|
+
}
|
|
151
|
+
],
|
|
152
|
+
"source": "https://github.com/php/php-src/security/advisories/GHSA-p99j-rfp4-xqvq",
|
|
153
|
+
"date": "2024-09-26",
|
|
154
|
+
"confidence": "confirmed",
|
|
155
|
+
"description": "The php-src advisory rates it Moderate and lists the patched versions 8.1.30, 8.2.24 and 8.3.12 (PHP 8 ChangeLog, 26 September 2024).",
|
|
156
|
+
"references": [
|
|
157
|
+
"phpsrcadvisories"
|
|
158
|
+
]
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"id": "httpd-cve-2021-41773-42013",
|
|
162
|
+
"product": "apache-httpd",
|
|
163
|
+
"title": "Path traversal and remote code execution in Apache HTTP Server 2.4.49 and 2.4.50",
|
|
164
|
+
"severity": "critical",
|
|
165
|
+
"cves": [
|
|
166
|
+
"CVE-2021-41773",
|
|
167
|
+
"CVE-2021-42013"
|
|
168
|
+
],
|
|
169
|
+
"condition": "Files outside Alias-like directories are not protected by the default \"require all denied\"; remote code execution also needs CGI enabled for those paths",
|
|
170
|
+
"fixed": [
|
|
171
|
+
{
|
|
172
|
+
"branch": "2.4",
|
|
173
|
+
"version": "2.4.51",
|
|
174
|
+
"introduced": "2.4.49"
|
|
175
|
+
}
|
|
176
|
+
],
|
|
177
|
+
"source": "https://httpd.apache.org/security/vulnerabilities_24.html",
|
|
178
|
+
"date": "2021-10-07",
|
|
179
|
+
"confidence": "confirmed",
|
|
180
|
+
"description": "CVE-2021-41773 affected only 2.4.49 and its fix in 2.4.50 was incomplete (CVE-2021-42013), so 2.4.49 and 2.4.50 are affected and 2.4.51 fixes both, per the Apache HTTP Server 2.4 vulnerabilities page.",
|
|
181
|
+
"references": [
|
|
182
|
+
"httpdvulns24"
|
|
183
|
+
]
|
|
184
|
+
}
|
|
185
|
+
]
|
|
186
|
+
}
|