{
  "$schema": "https://dcsf.net/security.schema.json",
  "schema_version": "dcsf-security-status-v1",
  "project": {
    "name": "DCSF",
    "alternateName": "DataHouse CSF",
    "maintainer": "DataHouse / eTop sp. z o.o.",
    "url": "https://dcsf.net/",
    "license": "GPL-3.0",
    "price": {
      "amount": 0,
      "currency": "USD"
    },
    "contact": "dat@etop.pl"
  },
  "updated": "2026-09-16",
  "latest_release": {
    "public_version": "DH20.22",
    "technical_version": "15.10.25",
    "published": "2026-09-16T10:32:19Z",
    "artifact_sha256": "b7bdc84c464d09c21be037a176e813cb9bbc016f90f8b62b4ca7d5b2aed0d9d6",
    "metadata_url": "https://dcsf.net/release.json"
  },
  "assessment_scope": "Authentic, unmodified release package and its managed templates. This does not attest to a particular server installation, residual administrator configuration, every vulnerability, or earlier DCSF releases.",
  "assessment_method": "Fresh pinned-key signature, artifact digest and complete inventory verification, then SHA-256 comparison of all seven reviewed Messenger sources and Apache templates with the previously inspected advisory-specific source set. All seven files are byte-identical. Not a new live exploit test.",
  "advisories": [
    {
      "id": "CVE-2026-65638",
      "component": "Messenger reCAPTCHA request handling",
      "status": "not_affected",
      "justification": "vulnerable_code_not_present",
      "assessed_public_version": "DH20.22",
      "assessed_technical_version": "15.10.25",
      "assessed_artifact_sha256": "b7bdc84c464d09c21be037a176e813cb9bbc016f90f8b62b4ca7d5b2aed0d9d6",
      "assessed_at": "2026-09-16T10:59:16.226Z",
      "rationale": {
        "en": "The released Messenger removes the legacy reCAPTCHA verification and unblock command path. The former PHP challenge endpoint returns HTTP 403. The upstream request-URL shell injection path is absent.",
        "pl": "Wydany Messenger nie ma dawnej ścieżki weryfikacji reCAPTCHA i poleceń samodzielnego odblokowania. Dawny endpoint PHP zwraca HTTP 403. Opisana przez upstream ścieżka wstrzyknięcia poleceń przez URL nie występuje."
      },
      "related_hardening_ids": [
        "P-01",
        "P-03",
        "P-37"
      ],
      "first_fixed_release": null,
      "historical_versions": "not_assessed",
      "references": [
        "https://support.cpanel.net/hc/en-us/articles/43387915588375-Security-CVE-2026-65638-CSF-Security-Release"
      ],
      "evidence_url": "https://dcsf.net/security/messenger-assessment.json"
    },
    {
      "id": "CVE-2026-67402",
      "component": "Messenger v3 Apache HTTPS configuration",
      "status": "not_affected",
      "justification": "vulnerable_code_not_present",
      "assessed_public_version": "DH20.22",
      "assessed_technical_version": "15.10.25",
      "assessed_artifact_sha256": "b7bdc84c464d09c21be037a176e813cb9bbc016f90f8b62b4ca7d5b2aed0d9d6",
      "assessed_at": "2026-09-16T10:59:16.226Z",
      "rationale": {
        "en": "The packaged Apache HTTP and HTTPS templates do not map /usr/bin through ScriptAlias. They serve static GET/HEAD content, disable executable handlers and .htaccess overrides, and deny script extensions.",
        "pl": "Szablony Apache HTTP i HTTPS w pakiecie nie mapują /usr/bin przez ScriptAlias. Obsługują statyczne GET/HEAD, wyłączają wykonywalne handlery i nadpisania przez .htaccess oraz blokują rozszerzenia skryptów."
      },
      "related_hardening_ids": [
        "P-38",
        "P-39"
      ],
      "first_fixed_release": null,
      "historical_versions": "not_assessed",
      "references": [
        "https://support.cpanel.net/hc/en-us/articles/43171958716439-Security-CSF-Security-Release-September-3rd-2026"
      ],
      "evidence_url": "https://dcsf.net/security/messenger-assessment.json"
    }
  ],
  "security_remediation_count": 51,
  "security_remediations": [
    {
      "id": "P-01",
      "status": "verified",
      "title": {
        "en": "Isolate Messenger reCAPTCHA input from every root shell boundary",
        "pl": "Odizolowanie danych reCAPTCHA komunikatora od każdej granicy powłoki roota"
      },
      "reference": "https://dcsf.net/hardening/#p-01"
    },
    {
      "id": "P-02",
      "status": "verified",
      "title": {
        "en": "Keep remote GLOBAL feeds data-only and unable to deliver advanced rules",
        "pl": "Ograniczenie zdalnych źródeł GLOBAL do danych bez możliwości dostarczania reguł zaawansowanych"
      },
      "reference": "https://dcsf.net/hardening/#p-02"
    },
    {
      "id": "P-03",
      "status": "verified",
      "title": {
        "en": "Protect Messenger files from symlink, hardlink and replacement races",
        "pl": "Ochrona plików komunikatora przed dowiązaniami i wyścigami podmiany"
      },
      "reference": "https://dcsf.net/hardening/#p-03"
    },
    {
      "id": "P-04",
      "status": "verified",
      "title": {
        "en": "Parse CIDR /0 explicitly and permit it only through caller policy",
        "pl": "Jawne parsowanie CIDR /0 i dopuszczanie go wyłącznie zgodnie z polityką wywołującego"
      },
      "reference": "https://dcsf.net/hardening/#p-04"
    },
    {
      "id": "P-05",
      "status": "verified",
      "title": {
        "en": "Require pinned RSA-3072 signatures, SHA-256-bound metadata and rollback checks for updates",
        "pl": "Wymaganie przypiętych podpisów RSA-3072, metadanych związanych przez SHA-256 i kontroli wycofania aktualizacji"
      },
      "reference": "https://dcsf.net/hardening/#p-05"
    },
    {
      "id": "P-06",
      "status": "verified",
      "title": {
        "en": "Harden the DirectAdmin privileged bridge and verify identity transitions",
        "pl": "Wzmocnienie uprzywilejowanego mostu DirectAdmin i weryfikacja zmian tożsamości"
      },
      "reference": "https://dcsf.net/hardening/#p-06"
    },
    {
      "id": "P-07",
      "status": "verified",
      "title": {
        "en": "Run privileged Perl entry points in taint mode with a minimal environment",
        "pl": "Uruchamianie uprzywilejowanych punktów wejścia Perla w trybie taint i minimalnym środowisku"
      },
      "reference": "https://dcsf.net/hardening/#p-07"
    },
    {
      "id": "P-08",
      "status": "verified",
      "title": {
        "en": "Generate a protected host-local key for the standalone interface",
        "pl": "Generowanie chronionego klucza lokalnego dla samodzielnego interfejsu"
      },
      "reference": "https://dcsf.net/hardening/#p-08"
    },
    {
      "id": "P-09",
      "status": "verified",
      "title": {
        "en": "Bound standalone UI workers, requests, searches, pre-authentication time and emitted output",
        "pl": "Ograniczenie procesów, żądań, wyszukiwania, czasu przed uwierzytelnieniem i wyników samodzielnego interfejsu"
      },
      "reference": "https://dcsf.net/hardening/#p-09"
    },
    {
      "id": "P-10",
      "status": "verified",
      "title": {
        "en": "Add CSPRNG sessions, CSRF protection, secure headers and modern TLS to the standalone UI",
        "pl": "Dodanie sesji CSPRNG, ochrony CSRF, bezpiecznych nagłówków i współczesnego TLS do samodzielnego UI"
      },
      "reference": "https://dcsf.net/hardening/#p-10"
    },
    {
      "id": "P-11",
      "status": "verified",
      "title": {
        "en": "Encode untrusted output at the final rendering boundary in every UI adapter",
        "pl": "Kodowanie niezaufanych danych na końcowej granicy renderowania każdego adaptera UI"
      },
      "reference": "https://dcsf.net/hardening/#p-11"
    },
    {
      "id": "P-12",
      "status": "verified",
      "title": {
        "en": "Classify Dovecot 2.4 success and failure variants without known false positives",
        "pl": "Klasyfikacja wariantów sukcesu i błędu Dovecot 2.4 bez znanych fałszywych alarmów"
      },
      "reference": "https://dcsf.net/hardening/#p-12"
    },
    {
      "id": "P-13",
      "status": "verified",
      "title": {
        "en": "Ignore managesieve-login consistently in every applicable profile",
        "pl": "Jednolite ignorowanie managesieve-login we wszystkich właściwych profilach"
      },
      "reference": "https://dcsf.net/hardening/#p-13"
    },
    {
      "id": "P-14",
      "status": "verified",
      "title": {
        "en": "Restrict custom regex results to validated TCP or UDP ports from 1 to 65535",
        "pl": "Ograniczenie wyników własnych wyrażeń do zweryfikowanych portów TCP lub UDP od 1 do 65535"
      },
      "reference": "https://dcsf.net/hardening/#p-14"
    },
    {
      "id": "P-15",
      "status": "verified",
      "title": {
        "en": "Enforce HTTPS with certificate and hostname verification for remote sources",
        "pl": "Wymuszenie HTTPS z weryfikacją certyfikatu i nazwy hosta dla źródeł zdalnych"
      },
      "reference": "https://dcsf.net/hardening/#p-15"
    },
    {
      "id": "P-16",
      "status": "verified",
      "title": {
        "en": "Validate download status, size and format before atomic last-good replacement",
        "pl": "Kontrola stanu, rozmiaru i formatu pobrań przed atomową podmianą ostatniej dobrej wersji"
      },
      "reference": "https://dcsf.net/hardening/#p-16"
    },
    {
      "id": "P-17",
      "status": "verified",
      "title": {
        "en": "Propagate restore failures and retain the last working firewall state",
        "pl": "Propagowanie błędów odtwarzania i zachowanie ostatniego działającego stanu firewalla"
      },
      "reference": "https://dcsf.net/hardening/#p-17"
    },
    {
      "id": "P-18",
      "status": "verified",
      "title": {
        "en": "Extract ZIP blocklists with strict limits and atomic replacement",
        "pl": "Rozpakowywanie list blokad ZIP z twardymi limitami i atomową podmianą"
      },
      "reference": "https://dcsf.net/hardening/#p-18"
    },
    {
      "id": "P-19",
      "status": "verified",
      "title": {
        "en": "Bound log records before regex processing and remove catastrophic patterns",
        "pl": "Ograniczenie rekordów logów przed analizą regex i usunięcie wzorców katastroficznych"
      },
      "reference": "https://dcsf.net/hardening/#p-19"
    },
    {
      "id": "P-20",
      "status": "verified",
      "title": {
        "en": "Authenticate, frame and resource-bound all cluster traffic",
        "pl": "Uwierzytelnienie, ramkowanie i ograniczenie zasobów całego ruchu klastra"
      },
      "reference": "https://dcsf.net/hardening/#p-20"
    },
    {
      "id": "P-21",
      "status": "verified",
      "title": {
        "en": "Isolate LF_DIRWATCH offenders and recover monitoring automatically",
        "pl": "Izolowanie sprawców LF_DIRWATCH i automatyczne przywracanie monitorowania"
      },
      "reference": "https://dcsf.net/hardening/#p-21"
    },
    {
      "id": "P-22",
      "status": "verified",
      "title": {
        "en": "Apply LF_SCRIPT_PERM changes only to the verified open inode",
        "pl": "Stosowanie zmian LF_SCRIPT_PERM wyłącznie do zweryfikowanego otwartego inode"
      },
      "reference": "https://dcsf.net/hardening/#p-22"
    },
    {
      "id": "P-23",
      "status": "verified",
      "title": {
        "en": "Keep secrets out of arguments, URLs, unsafe files and diagnostic bodies",
        "pl": "Usunięcie sekretów z argumentów, adresów URL, niebezpiecznych plików i diagnostyki"
      },
      "reference": "https://dcsf.net/hardening/#p-23"
    },
    {
      "id": "P-24",
      "status": "verified",
      "title": {
        "en": "Use one strict canonical API for IPv4, IPv6 and CIDR normalization",
        "pl": "Użycie jednego ścisłego API do kanonizacji IPv4, IPv6 i CIDR"
      },
      "reference": "https://dcsf.net/hardening/#p-24"
    },
    {
      "id": "P-25",
      "status": "verified",
      "title": {
        "en": "Validate the final mail envelope and invoke sendmail without a shell",
        "pl": "Walidacja końcowej koperty pocztowej i wywoływanie sendmail bez powłoki"
      },
      "reference": "https://dcsf.net/hardening/#p-25"
    },
    {
      "id": "P-26",
      "status": "verified",
      "title": {
        "en": "Resolve exact syslog user names, including names beginning with an underscore",
        "pl": "Rozpoznawanie dokładnych nazw użytkowników syslog, także zaczynających się podkreśleniem"
      },
      "reference": "https://dcsf.net/hardening/#p-26"
    },
    {
      "id": "P-27",
      "status": "verified",
      "title": {
        "en": "Separate display DNS data from security-authorisation cache state",
        "pl": "Oddzielenie danych DNS do wyświetlania od stanu cache używanego do autoryzacji"
      },
      "reference": "https://dcsf.net/hardening/#p-27"
    },
    {
      "id": "P-28",
      "status": "verified",
      "title": {
        "en": "Match trusted hostnames only as exact names or DNS-label suffixes",
        "pl": "Dopasowywanie zaufanych nazw tylko dokładnie lub na granicy etykiety DNS"
      },
      "reference": "https://dcsf.net/hardening/#p-28"
    },
    {
      "id": "P-29",
      "status": "verified",
      "title": {
        "en": "Canonicalise PTR data before cache, logs, mail, HTML or configuration use",
        "pl": "Kanonizacja danych PTR przed użyciem w cache, logach, poczcie, HTML i konfiguracji"
      },
      "reference": "https://dcsf.net/hardening/#p-29"
    },
    {
      "id": "P-30",
      "status": "verified",
      "title": {
        "en": "Bound DNS verification and caches by time, concurrency, size and complexity",
        "pl": "Ograniczenie weryfikacji DNS i cache według czasu, współbieżności, rozmiaru i złożoności"
      },
      "reference": "https://dcsf.net/hardening/#p-30"
    },
    {
      "id": "P-31",
      "status": "verified",
      "title": {
        "en": "Allow privileged CyberPanel mutations only through protected POST actions",
        "pl": "Dopuszczanie uprzywilejowanych zmian CyberPanel wyłącznie przez chronione żądania POST"
      },
      "reference": "https://dcsf.net/hardening/#p-31"
    },
    {
      "id": "P-32",
      "status": "verified",
      "title": {
        "en": "Remove predictable and followable temporary files from every installer",
        "pl": "Usunięcie przewidywalnych plików tymczasowych i podążania za dowiązaniami z instalatorów"
      },
      "reference": "https://dcsf.net/hardening/#p-32"
    },
    {
      "id": "P-33",
      "status": "verified",
      "title": {
        "en": "Prevent raw-byte record readers from splitting inside multibyte characters",
        "pl": "Zapobieganie dzieleniu znaków wielobajtowych przez czytniki surowych rekordów"
      },
      "reference": "https://dcsf.net/hardening/#p-33"
    },
    {
      "id": "P-34",
      "status": "verified",
      "title": {
        "en": "Register, authorise and bound every persistent store consumed by root",
        "pl": "Rejestracja, autoryzacja i ograniczenie każdego trwałego magazynu odczytywanego przez roota"
      },
      "reference": "https://dcsf.net/hardening/#p-34"
    },
    {
      "id": "P-35",
      "status": "verified",
      "title": {
        "en": "Use one unambiguous transactional grammar for temporary firewall rules",
        "pl": "Użycie jednej jednoznacznej i transakcyjnej gramatyki tymczasowych reguł firewalla"
      },
      "reference": "https://dcsf.net/hardening/#p-35"
    },
    {
      "id": "P-36",
      "status": "verified",
      "title": {
        "en": "Render alert templates once and prevent untrusted MIME structure injection",
        "pl": "Jednokrotne renderowanie szablonów alertów i blokada wstrzykiwania struktury MIME"
      },
      "reference": "https://dcsf.net/hardening/#p-36"
    },
    {
      "id": "P-37",
      "status": "verified",
      "title": {
        "en": "Drop Messenger v1 privileges irreversibly and close inherited descriptors",
        "pl": "Nieodwracalne obniżenie uprawnień Messenger v1 i zamknięcie odziedziczonych deskryptorów"
      },
      "reference": "https://dcsf.net/hardening/#p-37"
    },
    {
      "id": "P-38",
      "status": "verified",
      "title": {
        "en": "Contain Messenger v2 and v3 webroots and generated webserver configuration",
        "pl": "Ograniczenie katalogów WWW Messenger v2 i v3 oraz generowanej konfiguracji serwera"
      },
      "reference": "https://dcsf.net/hardening/#p-38"
    },
    {
      "id": "P-39",
      "status": "verified",
      "title": {
        "en": "Verify the Messenger identity and make each instance lifecycle transactional",
        "pl": "Weryfikacja tożsamości Messenger i transakcyjny cykl życia każdej instancji"
      },
      "reference": "https://dcsf.net/hardening/#p-39"
    },
    {
      "id": "P-40",
      "status": "verified",
      "title": {
        "en": "Build and install releases from a closed, verified artifact inventory",
        "pl": "Budowa i instalacja wydań z zamkniętego, zweryfikowanego wykazu artefaktów"
      },
      "reference": "https://dcsf.net/hardening/#p-40"
    },
    {
      "id": "P-41",
      "status": "verified",
      "title": {
        "en": "Transport authenticated panel requests without invoking a shell",
        "pl": "Przekazywanie uwierzytelnionych żądań paneli bez uruchamiania powłoki"
      },
      "reference": "https://dcsf.net/hardening/#p-41"
    },
    {
      "id": "P-42",
      "status": "verified",
      "title": {
        "en": "Validate and install remote Geo and ASN datasets as one last-good transaction",
        "pl": "Walidacja i instalacja zdalnych baz Geo i ASN jako jednej transakcji ostatniej dobrej wersji"
      },
      "reference": "https://dcsf.net/hardening/#p-42"
    },
    {
      "id": "P-43",
      "status": "verified",
      "title": {
        "en": "Bound log-record allocation before a complete attacker-controlled line enters memory",
        "pl": "Ograniczenie alokacji rekordu logu przed wczytaniem całej niezaufanej linii do pamięci"
      },
      "reference": "https://dcsf.net/hardening/#p-43"
    },
    {
      "id": "P-44",
      "status": "verified",
      "title": {
        "en": "Bind process actions to kernel identity rather than a reusable PID or socket inode",
        "pl": "Wiązanie działań na procesach z tożsamością jądra zamiast ponownie używalnego PID lub inode gniazda"
      },
      "reference": "https://dcsf.net/hardening/#p-44"
    },
    {
      "id": "P-45",
      "status": "verified",
      "title": {
        "en": "Ensure fork-bomb handling never treats a session ID as a process-group ID",
        "pl": "Zapewnienie, że obsługa fork-bomb nie traktuje identyfikatora sesji jak identyfikatora grupy procesów"
      },
      "reference": "https://dcsf.net/hardening/#p-45"
    },
    {
      "id": "P-46",
      "status": "verified",
      "title": {
        "en": "Remove command text and custom pignore regexes as process identity or action authority",
        "pl": "Usunięcie tekstu polecenia i własnych regex pignore z roli tożsamości procesu lub podstawy działania"
      },
      "reference": "https://dcsf.net/hardening/#p-46"
    },
    {
      "id": "P-47",
      "status": "verified",
      "title": {
        "en": "Prevent attacker-controlled comm bytes from shifting procfs identity fields or hiding a process",
        "pl": "Blokada przesuwania pól tożsamości procfs i ukrywania procesu przez kontrolowane bajty comm"
      },
      "reference": "https://dcsf.net/hardening/#p-47"
    },
    {
      "id": "P-48",
      "status": "verified",
      "title": {
        "en": "Prevent executable exceptions from bypassing accounting across UID, service or supervisor boundaries",
        "pl": "Blokada omijania rozliczania przez wyjątki plików wykonywalnych między UID, usługami i nadzorcami"
      },
      "reference": "https://dcsf.net/hardening/#p-48"
    },
    {
      "id": "P-49",
      "status": "verified",
      "title": {
        "en": "Bound procfs scanning per object, per UID and globally with cross-UID fairness",
        "pl": "Ograniczenie skanowania procfs dla obiektu, UID i całego cyklu z uczciwym podziałem między UID"
      },
      "reference": "https://dcsf.net/hardening/#p-49"
    },
    {
      "id": "P-50",
      "status": "verified",
      "title": {
        "en": "Bound lock-hang recovery and never signal a target parsed from lock-file bytes",
        "pl": "Ograniczenie odzyskiwania po zawieszonej blokadzie bez sygnalizowania celu odczytanego z pliku blokady"
      },
      "reference": "https://dcsf.net/hardening/#p-50"
    },
    {
      "id": "P-51",
      "status": "verified",
      "title": {
        "en": "Block secondary InterWorx NodeWorx accounts from DCSF unless they hold native firewall authority",
        "pl": "Blokada dostępu do DCSF dla dodatkowych kont NodeWorx bez natywnych uprawnień firewalla InterWorx"
      },
      "reference": "https://dcsf.net/hardening/#p-51"
    }
  ],
  "operational_controls": [
    {
      "id": "O-01",
      "title": {
        "en": "Require an explicit testing or production installation profile and expose testing mode in health checks",
        "pl": "Wymaganie jawnego profilu instalacji testowej lub produkcyjnej oraz wykrywanie trybu testowego przez kontrolę stanu"
      }
    },
    {
      "id": "O-02",
      "title": {
        "en": "Preserve replies to locally initiated connections under CC_DENY without admitting new inbound traffic",
        "pl": "Zachowanie odpowiedzi dla połączeń inicjowanych lokalnie przy CC_DENY bez dopuszczania nowego ruchu przychodzącego"
      }
    },
    {
      "id": "O-03",
      "title": {
        "en": "Preserve Docker-owned chains and DOCKER-USER policy through firewall restart and rollback",
        "pl": "Zachowanie łańcuchów Dockera i polityki DOCKER-USER podczas restartu oraz wycofania zmian firewalla"
      }
    }
  ],
  "supported_environments": [
    "cPanel & WHM",
    "OLSPanel",
    "DirectAdmin",
    "CyberPanel",
    "CWP",
    "InterWorx",
    "VestaCP",
    "Webmin",
    "Generic Linux"
  ],
  "ai_system_scan": {
    "name": "AI System Scan",
    "introduced_in_public_release": "DH20.22",
    "introduced_in_technical_version": "15.10.25",
    "enabled_by_default": false,
    "administrator_api_key_required": true,
    "modes": [
      "quick",
      "deep"
    ],
    "model_options": [
      "gpt-5-mini",
      "gpt-5.4-mini",
      "gpt-5.6-terra"
    ],
    "model_access": "These are the model choices offered by this release. Availability depends on the administrator OpenAI API account.",
    "key_storage": "Separate root-owned private file, mode 0600; never rendered back into the administration UI.",
    "execution": {
      "single_background_scan": true,
      "bounded_evidence": true,
      "bounded_execution_time": true,
      "automatic_remediation": false
    },
    "provider": {
      "name": "OpenAI",
      "endpoint": "https://api.openai.com/v1/responses",
      "store": false,
      "tools": [],
      "strict_output_schema": true,
      "valid_sent_evidence_ids_required": true
    },
    "disclosure": {
      "en": "Selected local security diagnostics are sent to OpenAI after activation. Recognised secret values are redacted, but this is not an anonymity guarantee. store=false is not a Zero Data Retention guarantee; the API account and provider data policies still apply. Optional API usage is billed separately from the free DCSF software. Findings need administrator review and do not guarantee that every security issue is detected.",
      "pl": "Po włączeniu wybrane lokalne dane diagnostyczne bezpieczeństwa są wysyłane do OpenAI. Rozpoznane sekrety są maskowane, ale nie jest to gwarancja anonimowości. store=false nie gwarantuje Zero Data Retention; nadal obowiązują ustawienia konta API i zasady dostawcy. Opcjonalne użycie API jest rozliczane osobno od bezpłatnego DCSF. Wnioski wymagają oceny administratora i nie gwarantują wykrycia wszystkich problemów bezpieczeństwa."
    },
    "data_policy_url": "https://developers.openai.com/api/docs/guides/your-data",
    "documentation_url": "https://dcsf.net/updates/#ai-system-scan"
  },
  "messenger": {
    "static_notice_service": "supported",
    "recaptcha_self_unblock": "disabled_in_release",
    "note": "The static notice service is distinct from the retired reCAPTCHA self-unblock path. Installation-specific residual web-server configuration must be assessed separately."
  },
  "changelog_url": "https://dcsf.net/changelog.json",
  "vex_url": "https://dcsf.net/vex.json",
  "counting_policy": "P-01 through P-51 are internal remediation identifiers, not 51 assigned CVEs. No affected range or first-fixed release is inferred from upstream version numbers.",
  "trust_policy": "These JSON documents are unsigned maintainer documentation. Authenticity of an installable package depends on the pinned-key signed manifest, its artifact checksum and inventory. No document guarantees the absence of all vulnerabilities."
}
