Files
Charon/docs/security/archive/2026-02-06-validation-report.md
akanealw eec8c28fb3
Some checks failed
Go Benchmark / Performance Regression Check (push) Has been cancelled
Cerberus Integration / Cerberus Security Stack Integration (push) Has been cancelled
Upload Coverage to Codecov / Backend Codecov Upload (push) Has been cancelled
Upload Coverage to Codecov / Frontend Codecov Upload (push) Has been cancelled
CodeQL - Analyze / CodeQL analysis (go) (push) Has been cancelled
CodeQL - Analyze / CodeQL analysis (javascript-typescript) (push) Has been cancelled
CrowdSec Integration / CrowdSec Bouncer Integration (push) Has been cancelled
Docker Build, Publish & Test / build-and-push (push) Has been cancelled
Quality Checks / Auth Route Protection Contract (push) Has been cancelled
Quality Checks / Codecov Trigger/Comment Parity Guard (push) Has been cancelled
Quality Checks / Backend (Go) (push) Has been cancelled
Quality Checks / Frontend (React) (push) Has been cancelled
Rate Limit integration / Rate Limiting Integration (push) Has been cancelled
Security Scan (PR) / Trivy Binary Scan (push) Has been cancelled
Supply Chain Verification (PR) / Verify Supply Chain (push) Has been cancelled
WAF integration / Coraza WAF Integration (push) Has been cancelled
Docker Build, Publish & Test / Security Scan PR Image (push) Has been cancelled
Repo Health Check / Repo health (push) Has been cancelled
History Rewrite Dry-Run / Dry-run preview for history rewrite (push) Has been cancelled
Prune Renovate Branches / prune (push) Has been cancelled
Renovate / renovate (push) Has been cancelled
Nightly Build & Package / sync-development-to-nightly (push) Has been cancelled
Nightly Build & Package / Trigger Nightly Validation Workflows (push) Has been cancelled
Nightly Build & Package / build-and-push-nightly (push) Has been cancelled
Nightly Build & Package / test-nightly-image (push) Has been cancelled
Nightly Build & Package / verify-nightly-supply-chain (push) Has been cancelled
changed perms
2026-04-22 18:19:14 +00:00

3.4 KiB
Executable File
Raw Blame History

Security Validation Report - Feb 2026

Date: 2026-02-06 Scope: E2E Test Validation & Container Security Scan Status: 🔴 FAIL

1. Executive Summary

Validation of the recent security enforcement updates revealed that while the core functionality is operational (frontend and backend are responsive), there are meaningful regression failures in E2E tests, specifically related to accessibility compliance and keyboard navigation. Additionally, a potentially flaky or timeout-prone behavior was observed in the CrowdSec diagnostics suite.

2. E2E Test Failures

The following tests failed during the firefox project execution against the E2E environment (http://127.0.0.1:8080).

2.1. Accessibility Failures (Severity: Medium)

Test: tests/security/crowdsec-config.spec.ts Case: CrowdSec Configuration @security Accessibility should have accessible form controls Error:

Error: expect(received).toBeTruthy()
Received: null
Location: crowdsec-config.spec.ts:296:28

Analysis: Input fields in the CrowdSec configuration form are missing accessible labels (via aria-label, aria-labelledby, or <label for="...">). This violates WCAG 2.1 guidelines and causes test failure.

2.2. Keyboard Navigation Failures (Severity: Medium)

Test: tests/security/crowdsec-decisions.spec.ts Case: CrowdSec Banned IPs Management Accessibility should be keyboard navigable Error:

Error: expect(locator).toBeVisible() failed
Locator: locator(':focus')
Expected: visible

Analysis: The "Banned IPs" card or table does not properly handle initial focus or tab navigation, resulting in focus being lost or placed on a non-visible element.

2.3. Test Interruption / Potential Timeout (Severity: Low/Flaky)

Test: tests/security/crowdsec-diagnostics.spec.ts Case: CrowdSec Diagnostics Connectivity Checks should optionally report console reachability Status: Interrupted Analysis: The test runner execution was interrupted or timed out on this specific test. Backend logs confirm the connectivity endpoint /api/v1/admin/crowdsec/diagnostics/connectivity responded successfully in ~166ms, suggesting the issue might be client-side (Playwright) or network race condition waiting for the next step.

3. Security Scan Results (Trivy)

Image: charon:local (Debian 13.3) Overall: 2 HIGH, 0 CRITICAL

Library Vulnerability Severity Fixed Version Title
libc-bin CVE-2026-0861 HIGH (None) glibc: Integer overflow in memalign
libc6 CVE-2026-0861 HIGH (None) glibc: Integer overflow in memalign

Analysis: The vulnerabilities are detected in the base OS (glibc). Currently, there is no fixed version available in the upstream repositories for this Debian version. These are considered Acceptable Risks for the moment until upstream patches are released.

4. Recommendations

  1. Remediate Accessibility: Update CrowdSecConfig React component to add aria-label to form inputs, specifically those used for configuration toggles or text fields.
  2. Fix Focus Management: Ensure the Banned IPs table has a valid tab order and visually indicates focus.
  3. Monitor Flakiness: Re-run diagnostics tests in isolation to confirm if the interruption is persistent.
  4. Accept Risk (OS): Acknowledge the glibc vulnerabilities and schedule a base image update check in 30 days.