<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.4.10) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-behring-cvd-policy-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="Machine-Readable CVD Policies">Machine-Readable Coordinated Vulnerability Disclosure Policies</title>
    <seriesInfo name="Internet-Draft" value="draft-behring-cvd-policy-00"/>
    <author initials="B. L." surname="Behring" fullname="Ben Luca Behring">
      <organization>Skalvar Technologies</organization>
      <address>
        <postal>
          <country>Germany</country>
        </postal>
        <email>behring@skalvar.de</email>
      </address>
    </author>
    <author initials="M." surname="Berg" fullname="Marco Berg">
      <organization>Skalvar Technologies</organization>
      <address>
        <postal>
          <country>Germany</country>
        </postal>
        <email>berg@skalvar.de</email>
      </address>
    </author>
    <date year="2026" month="September" day="01"/>
    <area>Security</area>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 56?>

<t>This document defines a JSON format for machine-readable Coordinated
Vulnerability Disclosure (CVD) policies.  It also defines the proposed
<tt>CVD-Policy</tt> field for discovery through <tt>security.txt</tt> and requests
registration of the <tt>application/cvd-policy+json</tt> media type.  The format
complements <tt>security.txt</tt> and human-readable policy documents.  A policy does
not prove ownership and does not establish legal authorization to test, legal
safe harbor, or the safety of an activity.</t>
    </abstract>
  </front>
  <middle>
    <?line 66?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Coordinated Vulnerability Disclosure depends on publishers communicating where
reports are accepted and under which conditions security research is expected.
<tt>security.txt</tt> <xref target="RFC9116"/> provides standardized discovery of contact and
human-readable policy information, but it does not define a machine-readable
policy model for scope, testing statements, or conditions.</t>
      <t>This document defines a strict JSON policy format, discovery by a proposed
<tt>security.txt</tt> field, retrieval and authority rules, deterministic scope and
testing evaluation, and an extension model.  The format records statements made
by a publisher.  It does not determine ownership, legal authorization, or legal
safe harbor.</t>
      <t>The proposed field and media type are not registered at the time this document
is written.  The registrations requested by this document are specified in
<xref target="iana-considerations"/>.</t>
    </section>
    <section anchor="conventions-and-terminology">
      <name>Conventions and Terminology</name>
      <t>The key words <strong>MUST</strong>, <strong>MUST NOT</strong>, <strong>REQUIRED</strong>, <strong>SHOULD</strong>, <strong>SHOULD NOT</strong>,
and <strong>MAY</strong> in this document are to be interpreted as described in BCP 14
<xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals.</t>
      <t>This document uses the following terms:</t>
      <dl>
        <dt>Publisher:</dt>
        <dd>
          <t>The party that publishes a CVD policy.</t>
        </dd>
        <dt>Discovery Host:</dt>
        <dd>
          <t>The normalized host from the URI originally used to retrieve <tt>security.txt</tt>,
before redirects.</t>
        </dd>
        <dt>Policy URI:</dt>
        <dd>
          <t>The URI carried by the proposed <tt>CVD-Policy</tt> field.</t>
        </dd>
        <dt>Target:</dt>
        <dd>
          <t>An absolute HTTP or HTTPS URL evaluated for one testing activity.</t>
        </dd>
        <dt>Authority:</dt>
        <dd>
          <t>Evidence that a policy was discovered through an assessed <tt>security.txt</tt> for
the exact Discovery Host.  Authority is not an ownership certificate.</t>
        </dd>
        <dt>Reporting Scope:</dt>
        <dd>
          <t>Assets and products for which the publisher states that reports are accepted.</t>
        </dd>
        <dt>Testing Permission:</dt>
        <dd>
          <t>An explicit publisher statement in a matching testing rule whose conditions
are satisfied.</t>
        </dd>
      </dl>
    </section>
    <section anchor="problem-statement">
      <name>Problem Statement</name>
      <t>Human-readable policies cannot be evaluated consistently by automated clients.
A client needs to distinguish reporting scope from testing permission, bind a
policy to the host that actually advertised it, reject ambiguous JSON, apply
exclusions and prohibitions independently of array order, and fail closed when
conditions or critical extensions are not understood.</t>
      <t>A JSON document fetched from an arbitrary location cannot establish authority
for the hosts it names.  Without discovery-host binding, a compromised or
unrelated host could publish statements about third-party targets.  Without
strict result semantics, a UI or automation could also turn an incomplete
publisher statement into an unsafe Boolean decision.</t>
    </section>
    <section anchor="design-goals-and-non-goals">
      <name>Design Goals and Non-Goals</name>
      <t>The design goals are:</t>
      <ul spacing="normal">
        <li>
          <t>deterministic parsing, validation, scope matching, and evaluation;</t>
        </li>
        <li>
          <t>exact binding between a Target host and its Discovery Host;</t>
        </li>
        <li>
          <t>separation of Reporting Scope from Testing Permission;</t>
        </li>
        <li>
          <t>fail-closed processing of conditions, prohibitions, and critical extensions;</t>
        </li>
        <li>
          <t>support for one policy document referenced independently by multiple hosts;</t>
        </li>
        <li>
          <t>useful reporting preferences without defining report transport; and</t>
        </li>
        <li>
          <t>machine-readable status and diagnostic values that do not claim legal effect.</t>
        </li>
      </ul>
      <t>The following are outside the scope of this document:</t>
      <ul spacing="normal">
        <li>
          <t>vulnerability-report transmission and intake endpoints;</t>
        </li>
        <li>
          <t>attachment upload, report authentication, and ticket or case management;</t>
        </li>
        <li>
          <t>website architecture, command-line interfaces, TypeScript APIs, and package
versioning;</t>
        </li>
        <li>
          <t>legal authorization to test or guaranteed safe harbor; and</t>
        </li>
        <li>
          <t>an Activity or extension registry in this revision.</t>
        </li>
      </ul>
      <t>Version 1 does not define a state named <tt>allowed</tt>, a default testing decision, an
explicit-order mode, or order-dependent first-match processing.  Software
package versions are independent of the document format version.</t>
      <!-- requirements: DOC-002; disposition: normative -->

</section>
    <section anchor="discovery-using-securitytxt">
      <name>Discovery Using security.txt</name>
      <t>A publisher advertises a Policy URI with the proposed <tt>CVD-Policy</tt> field in the
<tt>security.txt</tt> file defined by <xref target="RFC9116"/>.  Field names are compared
case-insensitively.  <tt>CVD-Policy</tt> contains exactly one absolute HTTPS URI as
specified by <xref target="RFC3986"/>.  The
URI MUST NOT contain userinfo or a fragment.</t>
      <t>A <tt>security.txt</tt> file MUST contain no more than one <tt>CVD-Policy</tt> field.
Automatic processing MUST reject multiple appearances and MUST NOT choose one
by field order.  The existing <tt>Policy</tt> field remains the mechanism for linking
to a human-readable policy.</t>
      <!-- requirements: DISC-001 DISC-002; disposition: normative -->

<t>A client MUST NOT guess <tt>/.well-known/cvd.json</tt> or any other policy path when
<tt>CVD-Policy</tt> is absent.  This document does not request a new well-known URI
suffix <xref target="RFC8615"/>.</t>
      <!-- requirements: DISC-003; disposition: normative -->

<t>Before creating Authority evidence, a client MUST successfully parse and assess
the retrieved <tt>security.txt</tt>.  The file MUST contain at least one valid
<tt>Contact</tt>, exactly one syntactically valid <tt>Expires</tt> whose timestamp is later
than the retrieval time, and exactly one valid <tt>CVD-Policy</tt>.  A malformed
<tt>Expires</tt> and a valid but expired <tt>Expires</tt> are distinct diagnostic conditions.
Neither condition establishes Authority.</t>
      <!-- requirements: DISC-004; disposition: normative -->

<t>The originally requested <tt>security.txt</tt> URI, the final URI, and every redirect
hop MUST use HTTPS.  Redirect processing MUST preserve the original Discovery
Host.  If the final host differs from the originally requested host, at least
one valid <tt>Canonical</tt> field in the resulting file MUST exactly equal the
originally requested <tt>security.txt</tt> URI.  Otherwise, assessment MUST NOT
establish Authority.  Detailed canonical-mismatch diagnostics are
implementation-specific and informative.</t>
      <t>Whenever one or more <tt>Canonical</tt> fields are present, at least one value MUST
exactly equal the originally requested <tt>security.txt</tt> URI before Authority is
established.  This requirement applies without a redirect and to same-host
redirects.</t>
      <!-- requirements: DISC-005 DISC-006 DISC-008; disposition: normative -->

<t>An OpenPGP cleartext signature can protect <tt>security.txt</tt> as described by
<xref target="RFC9116"/>.  Software that cannot genuinely re-sign a signed file MUST NOT
rewrite it automatically.  Core assessment software is not required to verify
such signatures; a client claiming signature verification has to perform that
verification independently.</t>
      <!-- requirements: DISC-007; disposition: normative -->

<t>External hosting of the JSON policy is permitted.  The Policy URI host does not
become the Discovery Host and does not gain Authority over any Target.</t>
    </section>
    <section anchor="policy-retrieval">
      <name>Policy Retrieval</name>
      <t>The media type defined by this document is
<tt>application/cvd-policy+json</tt>.  Network clients MUST accept that media type.  A
separately enabled compatibility mode MAY accept <tt>application/json</tt> while
presenting a notice; it MUST NOT broaden acceptance to other media types.  A
client performing automatic evaluation MUST reject HTML, plain text, and other
unexpected representations.</t>
      <!-- requirements: FETCH-001; disposition: normative -->

<t>A network client MUST retrieve the Policy URI with HTTPS <tt>GET</tt> as defined by
<xref target="RFC9110"/>.  It MUST send an <tt>Accept</tt> field preferring
<tt>application/cvd-policy+json</tt> and MUST list <tt>application/json</tt> only when the
compatibility mode is enabled.  Only <tt>200 OK</tt> is a complete Policy
representation.  <tt>204 No Content</tt>, <tt>206 Partial Content</tt>, and every other
status are not complete Policy representations.  Every redirect hop MUST use
HTTPS.  A client MUST NOT automatically send ambient credentials, cookies,
<tt>Authorization</tt>, or <tt>Proxy-Authorization</tt>, and MUST NOT forward such fields
across redirects.</t>
      <!-- requirements: FETCH-002; disposition: normative -->

<t>A retrieved representation is processed as UTF-8 JSON under
<xref target="structural-and-semantic-validation"/>.  Clients should apply finite redirect,
response-size, time, and resource limits and block automatic access to
loopback, link-local, private, reserved, and metadata addresses.  Redirects of
the JSON policy do not change the Discovery Host recorded during
<tt>security.txt</tt> assessment.</t>
      <t>Clients should retain the retrieval time, final Policy URI, redirect chain,
media type, and validators such as <tt>ETag</tt> or <tt>Last-Modified</tt>.  A cached policy
should not be treated as current after its <tt>expires</tt> instant or after the
associated <tt>security.txt</tt> evidence expires.</t>
    </section>
    <section anchor="authority-and-delegation">
      <name>Authority and Delegation</name>
      <t>Automatic permission evaluation MUST require Authority evidence produced by
successful assessment of the Discovery Host's <tt>security.txt</tt>.  A host string
provided by a caller, organization metadata in the JSON document, or the
location from which the JSON document was retrieved is insufficient.</t>
      <!-- requirements: AUTH-001; disposition: normative -->

<t>Authority evidence records the original Discovery Host, the assessed
<tt>security.txt</tt> URI, the Policy URI, and the <tt>security.txt</tt> expiry instant.  The
Discovery Host MUST remain the host of the originally requested <tt>security.txt</tt>
URI regardless of <tt>security.txt</tt> redirects, policy hosting, or policy
redirects.</t>
      <!-- requirements: AUTH-002; disposition: normative -->

<t>Before a positive testing-permission status is possible, the normalized Target
host MUST exactly equal the normalized Discovery Host.</t>
      <!-- requirements: AUTH-003; disposition: normative -->

<t>Parent domains, subdomains, CNAME targets, shared IP addresses, shared
certificates, organization claims, scope wildcards, policy location, filenames,
and redirects MUST NOT create, inherit, or transfer Authority.  Each subdomain
therefore needs discovery through its own <tt>security.txt</tt>.  Multiple Discovery
Hosts MAY independently reference one shared policy document; each evaluation
uses the evidence created for that exact host.</t>
      <!-- requirements: AUTH-004; disposition: normative -->

<t>Authority evidence MUST be bound to its advertised Policy URI.  The evaluated
Policy representation MUST have been retrieved from that exact URI or from the
final URI of its recorded all-HTTPS redirect chain.  An evaluator MUST NOT
combine arbitrary Policy JSON with Authority evidence for another Policy URI.</t>
      <!-- requirements: AUTH-005; disposition: normative -->

<t>A non-default port on the same exact host can be covered only by an explicit
Reporting Scope entry.  Port coverage does not relax the exact-host Authority
check.</t>
    </section>
    <section anchor="cvd-policy-document">
      <name>CVD Policy Document</name>
      <t>A Version 1 policy is one JSON object with these required members:
<tt>cvd_policy</tt>, <tt>last_updated</tt>, <tt>expires</tt>, <tt>organization</tt>, <tt>contact</tt>, <tt>research</tt>,
<tt>reporting_scope</tt>, and <tt>reporting</tt>.  The optional members are <tt>testing</tt>,
<tt>response_targets</tt>, <tt>disclosure</tt>, <tt>critical_extensions</tt>, and <tt>extensions</tt>.
Missing optional members MUST NOT create Testing Permission.  In particular,
missing <tt>testing</tt> means that no Testing Permission is established.</t>
      <!-- requirements: DOC-008; disposition: normative -->

<t>Core object members are exactly as follows.  Every unlisted member is forbidden:</t>
      <ul spacing="normal">
        <li>
          <t><tt>organization</tt> requires <tt>name</tt> and optionally contains <tt>uri</tt>;</t>
        </li>
        <li>
          <t><tt>contact</tt> requires <tt>channels</tt> and optionally contains
<tt>preferred_languages</tt> and <tt>encryption</tt>;</t>
        </li>
        <li>
          <t><tt>research</tt> requires <tt>posture</tt> and optionally contains <tt>statement</tt>;</t>
        </li>
        <li>
          <t><tt>reporting_scope</tt> contains <tt>web</tt>, <tt>products</tt>, or both;</t>
        </li>
        <li>
          <t>a web entry requires <tt>id</tt>, <tt>state</tt>, <tt>host</tt>, <tt>schemes</tt>, <tt>path_prefix</tt>, and
<tt>include_subdomains</tt>, and optionally contains <tt>ports</tt>;</t>
        </li>
        <li>
          <t>a product entry requires <tt>id</tt>, <tt>state</tt>, and <tt>name</tt>, and optionally contains
<tt>identifiers</tt>;</t>
        </li>
        <li>
          <t><tt>testing</tt> requires only <tt>rules</tt>;</t>
        </li>
        <li>
          <t>a testing rule requires <tt>id</tt>, <tt>activity</tt>, and <tt>state</tt>, and optionally contains
<tt>target_ids</tt> and, only when permitted, <tt>conditions</tt>;</t>
        </li>
        <li>
          <t><tt>conditions</tt> contains one or more defined condition members;</t>
        </li>
        <li>
          <t><tt>reporting</tt> requires <tt>requested_fields</tt> and <tt>proof_of_exploitation</tt> and has no
optional members;</t>
        </li>
        <li>
          <t><tt>response_targets</tt> contains one or more of <tt>acknowledgement_days</tt>,
<tt>initial_assessment_days</tt>, and <tt>update_interval_days</tt>;</t>
        </li>
        <li>
          <t><tt>disclosure</tt> requires <tt>approach</tt> and optionally contains <tt>default_days</tt> and
<tt>statement</tt>; and</t>
        </li>
        <li>
          <t><tt>extensions</tt> has absolute-URI member names and extension-defined values.</t>
        </li>
      </ul>
      <t>Arrays declared non-empty MUST contain at least one item.
<tt>reporting.requested_fields</tt>, <tt>contact.preferred_languages</tt>,
<tt>contact.encryption</tt>, and <tt>critical_extensions</tt> MAY be empty; other optional
arrays, when present, MUST be non-empty.</t>
      <!-- requirements: DOC-019; disposition: normative -->

<section anchor="version">
        <name>Version</name>
        <t>The <tt>cvd_policy</tt> member identifies the document format.  A Version 1 document
MUST contain the JSON number <tt>1</tt>; the string <tt>"1"</tt> and every 0.x value are not
Version 1 documents.  A missing or non-integer <tt>cvd_policy</tt> member MUST produce
<tt>invalid-policy</tt>.  An unknown integer version MUST produce
<tt>unsupported-policy</tt>.  Implementations MUST keep software package versions
separate from this document format value.</t>
        <!-- requirements: DOC-001 DOC-017; disposition: normative -->

</section>
      <section anchor="timestamps">
        <name>Timestamps</name>
        <t><tt>last_updated</tt> and <tt>expires</tt> are date-time strings conforming to <xref target="RFC3339"/>.
<tt>expires</tt> MUST identify an instant strictly later than <tt>last_updated</tt>.  An
expired policy MUST produce the normative status <tt>invalid-policy</tt> and MUST NOT
produce Testing Permission.  Detailed expiry diagnostics are informative and
implementation-specific.  Evaluators MUST compare expiry with an explicitly
supplied or recorded evaluation time.</t>
        <!-- requirements: DOC-009 DOC-010; disposition: normative -->

</section>
      <section anchor="organization">
        <name>Organization</name>
        <t><tt>organization</tt> contains the required non-empty string <tt>name</tt> and the optional
<tt>uri</tt>.  If present, <tt>uri</tt> MUST be an absolute HTTPS URI without userinfo.
Organization metadata does not establish Authority.</t>
        <!-- requirements: DOC-011 DOC-012; disposition: normative -->

</section>
      <section anchor="contact">
        <name>Contact</name>
        <t><tt>contact.channels</tt> is an ordered, non-empty array of unique contact URIs.  Every
entry MUST be an absolute URI using only the <tt>mailto</tt>, <tt>tel</tt>, or <tt>https</tt> scheme.
An HTTPS contact URI MUST NOT contain userinfo or a fragment.  Array order
states channel preference.</t>
        <t><tt>contact.preferred_languages</tt>, when present, is an array of unique language tags
conforming to BCP 47 <xref target="RFC5646"/>.  Its order has no defined meaning.
<tt>contact.encryption</tt>, when present, is an array of unique absolute URIs that
reference encryption keys or instructions.  It MUST NOT embed key material.</t>
        <!-- requirements: DOC-013 DOC-014 DOC-015 DOC-016; disposition: normative -->

</section>
      <section anchor="research-posture">
        <name>Research Posture</name>
        <t><tt>research.posture</tt> is one of <tt>open</tt>, <tt>limited</tt>, <tt>report_only</tt>, or <tt>prohibited</tt>.
The optional <tt>research.statement</tt> is explanatory text and has no evaluation
effect.</t>
        <t><tt>open</tt> states a generally welcoming posture but MUST NOT imply Testing
Permission without a matching <tt>permitted</tt> rule.  <tt>report_only</tt> states that
reports are accepted but active testing under this Policy is not permitted.  A
policy with <tt>report_only</tt> or <tt>prohibited</tt> posture MUST NOT contain a <tt>permitted</tt>
testing rule.  Such a posture produces <tt>publisher-stated-prohibited</tt> only after
the evaluation has
established Authority and matching Reporting Scope as specified in
<xref target="testing-permission-evaluation"/>.</t>
        <!-- requirements: TEST-001 TEST-002; disposition: normative -->

</section>
      <section anchor="reporting-scope">
        <name>Reporting Scope</name>
        <t><tt>reporting_scope</tt> contains a non-empty <tt>web</tt> array, a non-empty <tt>products</tt>
array, or both.  Every scope-entry ID and testing-rule ID MUST be unique across
the entire document.  Every ID MUST be 1 through 128 ASCII characters, start
with an ASCII letter or digit, and otherwise contain only ASCII letters,
digits, <tt>.</tt>, <tt>_</tt>, or <tt>-</tt>.  IDs and references are compared as exact,
case-sensitive strings.</t>
        <!-- requirements: SCOP-001 DOC-018; disposition: normative -->

<t>A web entry contains:</t>
        <ul spacing="normal">
          <li>
            <t><tt>id</tt>: a document-wide identifier;</t>
          </li>
          <li>
            <t><tt>state</tt>: <tt>in</tt> or <tt>out</tt>;</t>
          </li>
          <li>
            <t><tt>host</tt>: a DNS name, IPv4 literal, or IPv6 literal;</t>
          </li>
          <li>
            <t><tt>schemes</tt>: a non-empty unique array containing <tt>http</tt>, <tt>https</tt>, or both;</t>
          </li>
          <li>
            <t>optional <tt>ports</tt>: a non-empty unique array of integers from 1 through 65535;</t>
          </li>
          <li>
            <t><tt>path_prefix</tt>: an absolute-path prefix beginning with <tt>/</tt>; and</t>
          </li>
          <li>
            <t><tt>include_subdomains</tt>: a Boolean.</t>
          </li>
        </ul>
        <t>The <tt>host</tt> value MUST NOT contain a scheme, port, path, userinfo, wildcard,
query, or fragment.  An IP-literal entry MUST set <tt>include_subdomains</tt> to
<tt>false</tt>.  <tt>schemes</tt> MUST be non-empty and unique and MUST contain no value other
than <tt>http</tt> or <tt>https</tt>.  <tt>path_prefix</tt> MUST NOT contain query or fragment
syntax.</t>
        <!-- requirements: SCOP-002 SCOP-004 SCOP-005 SCOP-006; disposition: normative -->

<t>If <tt>ports</tt> is absent, only the default port for the matched scheme applies: 80
for HTTP and 443 for HTTPS.  A non-default port is covered only when explicitly
listed.</t>
        <t>A matching <tt>out</tt> entry MUST override every matching <tt>in</tt> entry.  Scope and rule
array order MUST NOT change an evaluation result.</t>
        <!-- requirements: SCOP-007 SCOP-008; disposition: normative -->

<t>A product entry contains <tt>id</tt>, <tt>state</tt>, a non-empty <tt>name</tt>, and an optional
non-empty array of unique <tt>identifiers</tt>.  Every product identifier MUST be an
absolute RFC 3986 URI and is compared as an exact, case-sensitive string
without scheme-specific equivalence processing.  Product entries are reporting
metadata only and MUST NOT produce automatic Testing Permission.  Version-range
syntax is not defined by Version 1.</t>
        <!-- requirements: SCOP-009; disposition: normative -->

</section>
      <section anchor="testing-rules">
        <name>Testing Rules</name>
        <t><tt>testing.rules</tt>, when present, is a non-empty array.  Each rule contains a
unique <tt>id</tt>, an <tt>activity</tt>, a <tt>state</tt>, optional <tt>target_ids</tt>, and optional
<tt>conditions</tt>.</t>
        <t>The core activity identifiers are:</t>
        <ul spacing="normal">
          <li>
            <t><tt>manual_testing</tt>: manually initiated investigation not described by a more
specific core activity;</t>
          </li>
          <li>
            <t><tt>automated_scanning</tt>: automated detection or vulnerability checking against a
web or network service;</t>
          </li>
          <li>
            <t><tt>fuzzing</tt>: automated transmission of generated or mutated inputs; and</t>
          </li>
          <li>
            <t><tt>credential_testing</tt>: testing only with researcher-controlled or explicitly
provided test accounts; it excludes credential stuffing, password spraying,
and use of third-party credentials.</t>
          </li>
        </ul>
        <t>An extension activity identifier MUST be an absolute URI.  An unknown
unqualified token is structurally invalid.  Activity identifiers, including
extension URI identifiers, are compared as exact, case-sensitive strings.</t>
        <!-- requirements: TEST-003; disposition: normative -->

<t>A rule's <tt>state</tt> is <tt>permitted</tt> or <tt>prohibited</tt>.  A <tt>permitted</tt> rule MUST contain
at least one <tt>target_id</tt>.  A <tt>prohibited</tt> rule without <tt>target_ids</tt> applies to
every web Target in Reporting Scope.  Every <tt>target_id</tt> MUST reference an
existing web entry whose state is <tt>in</tt>; references to products, <tt>out</tt> entries,
or missing IDs are invalid.</t>
        <!-- requirements: TEST-004 TEST-005 TEST-006; disposition: normative -->

<t>For one activity and Target, every applicable rule is collected.  Any matching
<tt>prohibited</tt> rule MUST override every matching <tt>permitted</tt> rule.  No matching
rule means no established Testing Permission.</t>
        <t>A <tt>prohibited</tt> rule MUST NOT contain <tt>conditions</tt>; a prohibition is
unconditional once the rule applies.</t>
        <!-- requirements: TEST-007 TEST-008; disposition: normative -->

<section anchor="conditions">
          <name>Conditions</name>
          <t>Version 1 defines these condition members:</t>
          <ul spacing="normal">
            <li>
              <t><tt>max_requests_per_second</tt>: a positive number;</t>
            </li>
            <li>
              <t><tt>max_concurrent_requests</tt>: a positive integer;</t>
            </li>
            <li>
              <t><tt>required_user_agent_token</tt>: a non-empty visible-ASCII string matched
case-sensitively as a complete substring of the planned User-Agent; and</t>
            </li>
            <li>
              <t><tt>test_accounts_only</tt>: the literal JSON value <tt>true</tt>.</t>
            </li>
          </ul>
          <t>A conditions object MUST contain at least one member.  Unknown members in
<tt>conditions</tt> MUST make the policy structurally invalid.</t>
          <!-- requirements: COND-001; disposition: normative -->

<t>A <tt>permitted</tt> <tt>automated_scanning</tt> or <tt>fuzzing</tt> rule MUST contain both rate and
concurrency limits.  A <tt>permitted</tt> <tt>credential_testing</tt> rule MUST contain those
two limits and <tt>test_accounts_only: true</tt>.</t>
          <!-- requirements: COND-002 COND-003; disposition: normative -->

<t>A condition is satisfied only if every value required from the planned activity
is present and compliant.  A missing planned value MUST be treated as
unsatisfied.  A client MUST NOT ignore an unknown condition.  Planned rate and
concurrency MUST be no greater than their limits, the planned User-Agent MUST
contain the required token, and controlled or explicitly provided test accounts
MUST be affirmatively confirmed when required.</t>
          <!-- requirements: COND-004; disposition: normative -->

</section>
      </section>
      <section anchor="reporting-preferences">
        <name>Reporting Preferences</name>
        <t><tt>reporting.requested_fields</tt> is a unique array containing zero or more of:
<tt>affected_asset</tt>, <tt>vulnerability_type</tt>, <tt>description</tt>, <tt>reproduction_steps</tt>,
<tt>impact</tt>, <tt>environment</tt>, <tt>evidence</tt>, <tt>researcher_contact</tt>, and
<tt>disclosure_preference</tt>.</t>
        <t>Requested fields are preferences.  A missing requested field MUST NOT by itself
cause a report to be rejected.</t>
        <!-- requirements: REP-001; disposition: normative -->

<t><tt>reporting.proof_of_exploitation</tt> is <tt>not_requested</tt>, <tt>requested_if_safe</tt>, or
<tt>prohibited</tt>.  <tt>requested_if_safe</tt> MUST NOT be interpreted as a request for
access to third-party data, persistence, exfiltration, lateral movement, damage,
availability impairment, or further exploitation.</t>
        <!-- requirements: REP-002; disposition: normative -->

<t>This document does not define report transmission, an intake endpoint, or an
attachment protocol.</t>
      </section>
      <section anchor="response-targets">
        <name>Response Targets</name>
        <t><tt>response_targets</tt> is optional and contains one or more positive integer values:
<tt>acknowledgement_days</tt>, <tt>initial_assessment_days</tt>, and <tt>update_interval_days</tt>.
Acknowledgement and initial-assessment periods start when the publisher
receives the initial report.  Each update interval starts when the preceding
substantive update is sent.  They are publisher targets, not guarantees,
deadlines imposed on a reporter, or permission to test.</t>
      </section>
      <section anchor="disclosure-preferences">
        <name>Disclosure Preferences</name>
        <t><tt>disclosure.approach</tt> is required when <tt>disclosure</tt> is present and is one of
<tt>coordinated</tt>, <tt>case_by_case</tt>, or <tt>no_preference</tt>.  The optional
<tt>default_days</tt> is a positive integer whose period starts when the publisher
receives the initial report.  The optional <tt>statement</tt> is explanatory text.  These members express publisher preferences and do not override a
Testing Rule, a condition, or applicable law.</t>
      </section>
      <section anchor="extensions">
        <name>Extensions</name>
        <t>Extension identifiers are absolute RFC 3986 URIs compared as exact,
case-sensitive strings.  Extension data appears only as values of same-named
members in the <tt>extensions</tt> object.  <tt>critical_extensions</tt> is an
array of unique extension identifiers.  Every identifier in
<tt>critical_extensions</tt> MUST have a same-named member in <tt>extensions</tt>.</t>
        <!-- requirements: EXT-001; disposition: normative -->

<t>An unknown critical extension MUST produce <tt>unsupported-policy</tt> during
permission evaluation.  An unknown non-critical extension MAY be ignored as
metadata but MUST NOT weaken any core prohibition or condition.  An extension
that changes permission, prohibition, or conditions MUST be listed as critical.</t>
        <!-- requirements: EXT-002 EXT-003 EXT-004; disposition: normative -->

<t>This revision creates no Activity or extension registry.  Such registries can
be considered in future work if interoperable extensions are deployed.</t>
      </section>
    </section>
    <section anchor="structural-and-semantic-validation">
      <name>Structural and Semantic Validation</name>
      <t>Policy text MUST be UTF-8 JSON conforming to <xref target="RFC8259"/>, with exactly one
top-level value, and that value MUST be an object.  Parsers MUST reject comments,
trailing commas, multiple JSON texts, non-JSON numbers, and duplicate member
names at every nesting level.  A parser MUST NOT silently normalize duplicate
names by retaining an earlier or later value.</t>
      <t>Automatic discovery and evaluation MUST use a duplicate-aware text parser before
ordinary object validation.  Duplicate safety cannot be recovered from an
object that has already passed through a parser that discarded duplicate names.</t>
      <!-- requirements: DOC-003 DOC-004 DOC-005; disposition: normative -->

<t>A validator MUST NOT insert defaults or coerce types.  Every core object MUST
reject unknown properties.  Extension data is permitted only under
<tt>extensions</tt>.</t>
      <!-- requirements: DOC-006 DOC-007; disposition: normative -->

<t>Validation proceeds through four distinct layers:</t>
      <ol spacing="normal" type="1"><li>
          <t>text parsing and duplicate detection;</t>
        </li>
        <li>
          <t>format-version selection and structural validation;</t>
        </li>
        <li>
          <t>semantic and cross-reference validation; and</t>
        </li>
        <li>
          <t>expiry, supported-extension, Authority, Target, scope, rule, and condition
evaluation.</t>
        </li>
      </ol>
      <t>The JSON Schema Draft 2020-12 <xref target="JSON-SCHEMA-2020-12"/> schema published with the
implementation corpus is a supporting artifact.  The normative requirements in
this document govern interoperability.  An implementation cannot rely on
external access to that schema to understand this format.</t>
      <t>Semantic validation includes timestamp ordering, valid URIs and language tags,
document-wide ID uniqueness, scope-host normalization, permitted-rule target
references, posture conflicts, required conditions, and critical-extension data
presence.</t>
    </section>
    <section anchor="target-normalization-and-scope-matching">
      <name>Target Normalization and Scope Matching</name>
      <t>A Target is an absolute HTTP or HTTPS URL without userinfo.  Product identifiers
and URIs with any other scheme are not evaluation Targets.  Query and fragment
components do not participate in scope matching.  The scheme and host are
normalized, an omitted port becomes 80 for HTTP or 443 for HTTPS, and the URL
pathname is used for path matching.</t>
      <t>DNS names MUST be converted to lowercase ASCII A-label form as described by
<xref target="RFC5890"/> and <xref target="RFC5891"/>, and one trailing dot MUST be removed.  IPv4 and
IPv6 literals MUST be compared in canonical form; IPv6 text representation
SHOULD follow <xref target="RFC5952"/>.</t>
      <!-- requirements: SCOP-003; disposition: normative -->

<t>A web scope entry matches only if all of the following hold:</t>
      <ol spacing="normal" type="1"><li>
          <t>the normalized hosts are equal, or <tt>include_subdomains</tt> is true and the
Target is the named DNS host or a proper subdomain on a label boundary;</t>
        </li>
        <li>
          <t>the normalized scheme appears in <tt>schemes</tt>;</t>
        </li>
        <li>
          <t>the effective port is present in <tt>ports</tt>, or <tt>ports</tt> is absent and the
effective port is the scheme's default; and</t>
        </li>
        <li>
          <t>the normalized pathname matches <tt>path_prefix</tt>.</t>
        </li>
      </ol>
      <t>Scope <tt>path_prefix</tt> and Target paths MUST use the same normalization.  An empty
path becomes <tt>/</tt>; RFC 3986 dot-segments are removed; repeated slashes are
preserved; hexadecimal digits in percent-encoded triplets are converted to
uppercase; and no percent-encoded octet is decoded for matching.  A percent
sign not followed by exactly two hexadecimal digits is invalid.  An encoded
slash therefore remains distinct from <tt>/</tt>.</t>
      <!-- requirements: SCOP-010; disposition: normative -->

<t>Path matching is case-sensitive.  <tt>/</tt> matches every path.  A prefix ending in <tt>/</tt> matches paths that
start with that prefix.  Any other prefix matches the exact path or that prefix
followed by <tt>/</tt>.  Therefore, <tt>/api</tt> matches <tt>/api</tt>, <tt>/api/</tt>, and <tt>/api/v1</tt>, but
not <tt>/apix</tt>.</t>
      <t>Matching scope entries are collected without order-based priority.  If any
matching entry is <tt>out</tt>, the Target is excluded.  Otherwise, at least one
matching <tt>in</tt> web entry is required before rule evaluation.  Scope matching for
a subdomain does not establish Authority for that subdomain.</t>
    </section>
    <section anchor="testing-permission-evaluation">
      <name>Testing Permission Evaluation</name>
      <t>An evaluator accepts policy text, a Target, one activity, the planned values
needed by conditions, the set of understood extensions, an evaluation time, and
Authority evidence.  Before policy evaluation, it MUST validate and normalize
the Target input.  Invalid Target input MUST produce a typed machine-readable
input-validation failure with no evaluation status; it MUST NOT produce
<tt>not-covered</tt> or any other status from this document.</t>
      <t>After successful Target input validation, an evaluator MUST execute the
following order and return at the first terminal outcome:</t>
      <ol spacing="normal" type="1"><li>
          <t>Parse the policy with duplicate detection.  A failure returns
<tt>invalid-policy</tt>.</t>
        </li>
        <li>
          <t>Check <tt>cvd_policy</tt>.  A missing or non-integer value returns
<tt>invalid-policy</tt>; an unknown integer version returns <tt>unsupported-policy</tt>.</t>
        </li>
        <li>
          <t>Perform structural validation.  A failure returns <tt>invalid-policy</tt>.</t>
        </li>
        <li>
          <t>Perform semantic and reference validation.  A failure returns
<tt>invalid-policy</tt>.</t>
        </li>
        <li>
          <t>Check policy expiry.  Expiry returns <tt>invalid-policy</tt>.</t>
        </li>
        <li>
          <t>Check critical extensions and the requested extension activity.  Unsupported
critical behavior returns <tt>unsupported-policy</tt>.</t>
        </li>
        <li>
          <t>Require successfully established Authority evidence and Policy retrieval
evidence bound to its advertised Policy URI.  Missing, invalid, or mismatched
evidence returns <tt>authority-not-established</tt>.</t>
        </li>
        <li>
          <t>Require exact normalized Target and Discovery Host equality.  A mismatch
returns <tt>authority-not-established</tt>.</t>
        </li>
        <li>
          <t>Collect matching Reporting Scope entries.</t>
        </li>
        <li>
          <t>If any matching entry is <tt>out</tt>, return <tt>not-covered</tt>; otherwise, if no
matching <tt>in</tt> web entry exists, return <tt>not-covered</tt>.</t>
        </li>
        <li>
          <t>Apply Research Posture.  <tt>report_only</tt> or <tt>prohibited</tt> returns
<tt>publisher-stated-prohibited</tt>.</t>
        </li>
        <li>
          <t>Collect all rules for the requested activity that apply globally or refer to
a matching <tt>in</tt> target ID.</t>
        </li>
        <li>
          <t>If any collected rule is <tt>prohibited</tt>, return
<tt>publisher-stated-prohibited</tt>.</t>
        </li>
        <li>
          <t>If no collected <tt>permitted</tt> rule exists, return <tt>not-covered</tt>.  Otherwise,
evaluate all conditions fail closed.  If no permitted rule is fully
satisfied, return <tt>conditions-not-satisfied</tt>.</t>
        </li>
        <li>
          <t>Return <tt>publisher-stated-permitted</tt> when one or more permitted rules are
fully satisfied.  Implementations MAY report all satisfied rule IDs
informatively.  Draft 00 defines neither lexicographic rule selection nor
one aggregated constraint object; each satisfied rule retains its own
conditions.</t>
        </li>
      </ol>
      <!-- requirements: EVAL-003 EVAL-005; disposition: normative -->

<t>A positive status requires a valid unexpired policy, understood critical
behavior, established Authority, exact Target and Discovery Host equality, at
least one matching <tt>in</tt> web entry, no matching <tt>out</tt>, no applicable prohibition,
and at least one fully satisfied <tt>permitted</tt> rule.</t>
      <!-- requirements: EVAL-004; disposition: normative -->

<t>The primary public result MUST NOT be a Boolean named <tt>allowed</tt>, <tt>authorized</tt>,
or <tt>safe</tt>.  Calling software MUST treat every status other than
<tt>publisher-stated-permitted</tt> as no established Testing Permission.  Even
<tt>publisher-stated-permitted</tt> reports only a publisher statement obtained by the
algorithm above; it is not a determination of legal authorization or safe
harbor.</t>
      <!-- requirements: EVAL-001 EVAL-002; disposition: normative -->

</section>
    <section anchor="processing-errors-and-result-statuses">
      <name>Processing Errors and Result Statuses</name>
      <t>The status is exactly one of:</t>
      <ul spacing="normal">
        <li>
          <t><tt>publisher-stated-permitted</tt>: every positive precondition is satisfied;</t>
        </li>
        <li>
          <t><tt>publisher-stated-prohibited</tt>: posture or an applicable rule prohibits the
activity;</t>
        </li>
        <li>
          <t><tt>not-covered</tt>: a syntactically valid normalized Target has no matching <tt>in</tt>
web scope, matches an <tt>out</tt> web scope, or has no matching testing rule;</t>
        </li>
        <li>
          <t><tt>authority-not-established</tt>: required Authority evidence is absent, invalid,
or bound to another host;</t>
        </li>
        <li>
          <t><tt>conditions-not-satisfied</tt>: applicable permission statements exist, but none
has all conditions satisfied;</t>
        </li>
        <li>
          <t><tt>invalid-policy</tt>: parsing, structural, semantic, reference, or expiry
validation failed; or</t>
        </li>
        <li>
          <t><tt>unsupported-policy</tt>: the format version, critical extension, or requested
extension activity is not understood.</t>
        </li>
      </ul>
      <t>The ordered algorithm in <xref target="testing-permission-evaluation"/> defines precedence.  Array order and
implementation iteration order MUST NOT alter the status.</t>
      <t>Input-validation and policy-processing failures MUST be machine-readable and
identify affected locations when available.  Only failures that validate
evaluation-call input, such as an invalid Target URL, are structurally outside
status-bearing evaluation results.  Policy parsing, version dispatch,
structural, semantic, reference, and expiry failures remain normal
status-bearing results; in particular, <tt>invalid-policy</tt> is a normative status.  Localized prose MUST NOT be the
only interface contract.  Implementations are not required to emit identical
detailed diagnostic identifiers.  Such identifiers are informative and
implementation-specific.</t>
      <!-- requirements: ERR-001 ERR-002; disposition: normative -->

</section>
    <section anchor="operational-considerations">
      <name>Operational Considerations</name>
      <t>Publishers should choose expiry periods that force regular review; approximately
one year is a useful operational starting point.  They should update
<tt>last_updated</tt> only for substantive changes and should preserve old policy
versions for incident records when practical.</t>
      <t>Clients should record the policy representation, retrieval context, evaluation
time, status, diagnostic details, and satisfied rules used for a decision.  A policy can
change during an investigation; a later policy must not silently rewrite the
record of an earlier evaluation.  Clients should revalidate after cache
revalidation, redirects, media-type changes, or expiry.</t>
      <t>Response and disclosure targets are publisher statements.  Operational tooling
must not present them as service guarantees or as conditions imposed on a
reporter.</t>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t><strong>RFC Editor: remove this entire section and the informative reference to RFC
7942 before publication.</strong></t>
      <t>This section records known implementation status at the time of posting, as
recommended by <xref target="RFC7942"/>.  Its purpose is to assist IETF review; listing an
implementation does not imply IETF endorsement or independently verified
interoperability.</t>
      <t>The specification commit
<tt>a7e359ac2bc2efbc89febc7c4a5cd42dec03eade</tt> contains the Version 1 source,
Draft 2020-12 schema, examples, and a conformance corpus mapping all 71
normative requirement IDs to executable checks <xref target="CVD-POLICY-SPEC"/>.  The
TypeScript reference implementation commit
<tt>acc609efc4adc33683cc6c71acd57a8a8e06169b</tt> exposes the isolated
<tt>@cvd-policy/core/v1</tt> entry point and executes that corpus
<xref target="CVD-POLICY-CORE"/>.  It validates supplied retrieval evidence but does not
perform network retrieval or OpenPGP signature verification.  The package root,
CLI, and website retain their published 0.x behavior.</t>
      <t>At the 2026-09-01 build, both referenced GitHub commit URLs returned HTTP 200
and the artifacts were publicly inspectable.  This Implementation Status
evidence is ready for Datatracker submission.  The references require
revalidation immediately before submission.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Policies and <tt>security.txt</tt> files are untrusted input.  Implementations MUST fail
closed for every security-sensitive ambiguity in parsing, Authority, scope,
rule matching, conditions, and extensions.</t>
      <!-- requirements: SEC-001; disposition: normative -->

<t>Duplicate member names can produce inconsistent interpretations between
parsers.  Clients need duplicate-aware parsing before ordinary object mapping,
must reject non-JSON syntax, and should bound input size, nesting depth, member
count, string length, and total validation errors.  Such limits mitigate memory,
CPU, stack, and denial-of-service attacks involving overly complex documents.</t>
      <t>Automatic retrieval creates SSRF and redirect risks.  Clients should enforce
HTTPS at every hop, finite redirect and response limits, timeouts, address
filtering before every connection, DNS-rebinding defenses, and credential
isolation.  They should reject HTTPS downgrades and unexpected media types.</t>
      <t>A compromised Policy URI host can alter or suppress a policy.  A compromised
Discovery Host can advertise a malicious policy for that exact host.  Authority
records what the Discovery Host published; it does not prove ownership,
organizational control, or legal permission.  High-risk decisions need
independent corroboration.</t>
      <t>Claims about third-party targets are not permission.  Exact Discovery Host
binding prevents parent-domain, subdomain, CNAME, shared-address, shared-
certificate, and organization-name confusion from transferring Authority.
Clients should display normalized A-label hostnames and, when useful, their
Unicode presentation to reduce IDNA and Unicode confusion.</t>
      <t>Caches can preserve withdrawn or stale statements.  Clients must honor both
policy and <tt>security.txt</tt> expiry and should retain the exact policy used during
an investigation.  Unknown conditions fail validation or remain unsatisfied;
unknown critical extensions produce <tt>unsupported-policy</tt>; and non-critical
extensions cannot weaken core prohibitions.</t>
      <t>No status in this document determines that an activity is legally authorized.
<tt>publisher-stated-permitted</tt> is not guaranteed safe harbor and does not remove
the need to assess law, contracts, third-party rights, safety, or operational
risk.</t>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>Implementations MUST NOT transmit policy text, <tt>security.txt</tt> text, Target
details, or researcher plan data unless a user explicitly invokes a network
operation that requires the transmission.</t>
      <!-- requirements: PRIV-001; disposition: normative -->

<t>A policy can reveal internal asset names, product identifiers, test systems, or
contact addresses.  This document does not require a publisher to disclose
confidential infrastructure.  Publishers should provide only information they
intend to make public and should consider role-based rather than personal
contact addresses.</t>
      <t>Policy retrieval can be logged by the Discovery Host, Policy URI host,
intermediaries, and DNS operators.  Per-client URLs, tokens, query parameters,
or similar registration mechanisms can track researchers and should be avoided.
A client should disclose the destination of every network request and minimize
retention of retrieval and evaluation data.</t>
      <t>Nothing in this document requires a researcher to publish or transmit identity
information.  <tt>researcher_contact</tt> is only a reporting preference, and omission
alone cannot justify rejecting a report.  Contact information in policies can
be personal data and should be processed with appropriate minimization and
retention controls.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document requests the following registrations.  The field and media type
remain proposed until IANA completes the applicable actions.</t>
      <section anchor="securitytxt-field">
        <name>security.txt Field</name>
        <t>IANA is requested to add this entry to the "security.txt Fields" registry:</t>
        <dl>
          <dt>Field Name:</dt>
          <dd>
            <t>CVD-Policy</t>
          </dd>
          <dt>Description:</dt>
          <dd>
            <t>Link to a machine-readable coordinated vulnerability disclosure policy</t>
          </dd>
          <dt>Multiple Appearances:</dt>
          <dd>
            <t>No</t>
          </dd>
          <dt>Status:</dt>
          <dd>
            <t>current</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Reference:</dt>
          <dd>
            <t>This document, <xref target="discovery-using-securitytxt"/></t>
          </dd>
        </dl>
      </section>
      <section anchor="media-type">
        <name>Media Type</name>
        <t>IANA is requested to add this entry to the "Media Types" registry, using the
template defined by <xref target="RFC6838"/> and the structured-syntax suffix rules in
<xref target="RFC6839"/>:</t>
        <dl>
          <dt>Type name:</dt>
          <dd>
            <t>application</t>
          </dd>
          <dt>Subtype name:</dt>
          <dd>
            <t>cvd-policy+json</t>
          </dd>
          <dt>Required parameters:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Optional parameters:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Encoding considerations:</dt>
          <dd>
            <t>binary; representations are UTF-8 JSON as required by this document and
<xref target="RFC8259"/></t>
          </dd>
          <dt>Security considerations:</dt>
          <dd>
            <t>Policy representations are untrusted JSON and can influence decisions about
active security testing.  Implementations need duplicate-aware parsing,
strict schema and semantic validation, bounded resource use, expiry checks,
exact Authority and Policy-URI binding, fail-closed rule processing, and
rejection of unknown critical behavior.  Automatic retrieval introduces
SSRF, redirect, credential-disclosure, DNS-rebinding, and stale-cache risks;
clients are required to use HTTPS, avoid ambient credentials, and accept only
complete <tt>200 OK</tt> representations; they are advised to enforce finite limits
and filter unsafe network destinations.  No result establishes ownership, legal authorization,
safe harbor, or operational safety.  See <xref target="security-considerations"/>.</t>
          </dd>
          <dt>Interoperability considerations:</dt>
          <dd>
            <t>Interoperability requirements are specified throughout this document,
including strict parsing, validation, Authority, scope matching, condition
processing, and extension handling.</t>
          </dd>
          <dt>Published specification:</dt>
          <dd>
            <t>This document.</t>
          </dd>
          <dt>Applications that use this media type:</dt>
          <dd>
            <t>CVD policy publishers, validators, discovery clients, and policy evaluators.</t>
          </dd>
          <dt>Fragment identifier considerations:</dt>
          <dd>
            <t>The syntax and semantics of fragment identifiers for this <tt>+json</tt> media type
follow <tt>application/json</tt> as specified by <xref target="RFC6839"/>.  At the time of this
registration, <tt>application/json</tt> defines no fragment identifier syntax; if
such syntax is defined in the future, it applies to this media type unless a
later specification states otherwise.  Independently, a Policy URI carried
by <tt>CVD-Policy</tt> cannot contain a fragment.</t>
          </dd>
          <dt>Additional information:</dt>
          <dd>
            <t>Deprecated alias names: none.  Magic number(s): none.  File extension(s):
none.  Macintosh file type code(s): none.</t>
          </dd>
          <dt>Person and email address to contact for further information:</dt>
          <dd>
            <t>Ben Luca Behring, behring@skalvar.de; Marco Berg, berg@skalvar.de.</t>
          </dd>
          <dt>Intended usage:</dt>
          <dd>
            <t>COMMON</t>
          </dd>
          <dt>Restrictions on usage:</dt>
          <dd>
            <t>none</t>
          </dd>
          <dt>Author:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Change controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Provisional registration:</dt>
          <dd>
            <t>no</t>
          </dd>
        </dl>
        <t>This document does not request registration of a well-known URI suffix.  It also
does not create an Activity or extension registry in Draft 00.</t>
      </section>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <t>All policy examples in this section are complete documents.  The Draft build
checks them with the Version 1 schema and semantic validator.  Evaluation
outcomes are tied to named conformance-corpus vectors.</t>
      <section anchor="minimal-report-only-policy">
        <name>Minimal report-only Policy</name>
        <!-- policy-example: minimal-report-only -->

<sourcecode type="json"><![CDATA[
{
  "cvd_policy": 1,
  "last_updated": "2026-08-29T08:00:00Z",
  "expires": "2027-02-28T08:00:00Z",
  "organization": {
    "name": "Example Organization"
  },
  "contact": {
    "channels": [
      "mailto:security@example.com"
    ]
  },
  "research": {
    "posture": "report_only"
  },
  "reporting_scope": {
    "web": [
      {
        "id": "main-web",
        "state": "in",
        "host": "example.com",
        "schemes": [
          "https"
        ],
        "path_prefix": "/",
        "include_subdomains": false
      }
    ]
  },
  "reporting": {
    "requested_fields": [
      "affected_asset",
      "description"
    ],
    "proof_of_exploitation": "not_requested"
  }
}
]]></sourcecode>
        <t>This policy accepts reports but contains no Testing Permission.</t>
      </section>
      <section anchor="limited-automated-web-testing">
        <name>Limited automated Web testing</name>
        <!-- policy-example: limited-web-testing -->

<sourcecode type="json"><![CDATA[
{
  "cvd_policy": 1,
  "last_updated": "2026-08-29T08:00:00Z",
  "expires": "2027-02-28T08:00:00Z",
  "organization": {
    "name": "Example Organization",
    "uri": "https://example.com/"
  },
  "contact": {
    "channels": [
      "mailto:security@example.com",
      "https://example.com/security/contact"
    ],
    "preferred_languages": [
      "en",
      "de"
    ],
    "encryption": [
      "https://example.com/security/pgp-key.txt"
    ]
  },
  "research": {
    "posture": "limited",
    "statement": "Security research is welcome only under the rules below."
  },
  "reporting_scope": {
    "web": [
      {
        "id": "main-web",
        "state": "in",
        "host": "example.com",
        "schemes": [
          "https"
        ],
        "ports": [
          443
        ],
        "path_prefix": "/",
        "include_subdomains": false
      }
    ]
  },
  "testing": {
    "rules": [
      {
        "id": "automated-scan-main",
        "activity": "automated_scanning",
        "state": "permitted",
        "target_ids": [
          "main-web"
        ],
        "conditions": {
          "max_requests_per_second": 2,
          "max_concurrent_requests": 2,
          "required_user_agent_token": "security-research"
        }
      }
    ]
  },
  "reporting": {
    "requested_fields": [
      "affected_asset",
      "description",
      "reproduction_steps",
      "impact"
    ],
    "proof_of_exploitation": "not_requested"
  },
  "response_targets": {
    "acknowledgement_days": 2,
    "initial_assessment_days": 10,
    "update_interval_days": 14
  },
  "disclosure": {
    "approach": "coordinated",
    "default_days": 90
  },
  "critical_extensions": [],
  "extensions": {}
}
]]></sourcecode>
        <t>For the plan in corpus vector <tt>conditions-rate-exceeded</tt>, a planned rate of 3
requests per second exceeds the limit of 2.  The normative result is
<tt>conditions-not-satisfied</tt>.</t>
        <!-- evaluation-vector: conditions-rate-exceeded -->

</section>
      <section anchor="externally-hosted-policy">
        <name>Externally hosted Policy</name>
        <t>The minimal policy in <xref target="minimal-report-only-policy"/> can be hosted by a provider.  The
Discovery Host retains Authority because its own assessed <tt>security.txt</tt>
contains the reference:</t>
        <sourcecode type="text"><![CDATA[
Contact: mailto:security@example.com
Policy: https://example.com/security-policy
CVD-Policy: https://policies.provider.example/example.json
Expires: 2027-02-28T08:00:00Z
Canonical: https://example.com/.well-known/security.txt
]]></sourcecode>
        <t>The provider host does not gain Authority over <tt>example.com</tt>.</t>
      </section>
      <section anchor="multiple-hosts-sharing-one-policy">
        <name>Multiple hosts sharing one Policy</name>
        <!-- policy-example: shared-policy-multiple-hosts -->

<sourcecode type="json"><![CDATA[
{
  "cvd_policy": 1,
  "last_updated": "2026-08-29T08:00:00Z",
  "expires": "2027-02-28T08:00:00Z",
  "organization": {
    "name": "Example Organization"
  },
  "contact": {
    "channels": [
      "mailto:security@example.com"
    ]
  },
  "research": {
    "posture": "limited"
  },
  "reporting_scope": {
    "web": [
      {
        "id": "example",
        "state": "in",
        "host": "example.com",
        "schemes": [
          "https"
        ],
        "path_prefix": "/",
        "include_subdomains": true
      }
    ]
  },
  "testing": {
    "rules": [
      {
        "id": "manual",
        "activity": "manual_testing",
        "state": "permitted",
        "target_ids": [
          "example"
        ]
      }
    ]
  },
  "reporting": {
    "requested_fields": [
      "affected_asset",
      "description"
    ],
    "proof_of_exploitation": "not_requested"
  }
}
]]></sourcecode>
        <t><tt>example.com</tt> and <tt>api.example.com</tt> each publish their own <tt>security.txt</tt> and
both point to <tt>https://policies.provider.example/shared.json</tt>.  Separate
Authority evidence is required for each exact Discovery Host.  The
<tt>include_subdomains</tt> member affects scope matching only.</t>
      </section>
      <section anchor="an-out-entry-overriding-an-in-entry">
        <name>An out entry overriding an in entry</name>
        <!-- policy-example: scope-out-wins -->

<sourcecode type="json"><![CDATA[
{
  "cvd_policy": 1,
  "last_updated": "2026-08-29T08:00:00Z",
  "expires": "2027-02-28T08:00:00Z",
  "organization": {
    "name": "Example Organization",
    "uri": "https://example.com/"
  },
  "contact": {
    "channels": [
      "mailto:security@example.com",
      "https://example.com/security/contact"
    ],
    "preferred_languages": [
      "en",
      "de"
    ],
    "encryption": [
      "https://example.com/security/pgp-key.txt"
    ]
  },
  "research": {
    "posture": "limited",
    "statement": "Security research is welcome only under the rules below."
  },
  "reporting_scope": {
    "web": [
      {
        "id": "main-web",
        "state": "in",
        "host": "example.com",
        "schemes": [
          "https"
        ],
        "ports": [
          443
        ],
        "path_prefix": "/",
        "include_subdomains": false
      },
      {
        "id": "excluded",
        "state": "out",
        "host": "example.com",
        "schemes": [
          "https"
        ],
        "path_prefix": "/",
        "include_subdomains": false
      }
    ]
  },
  "testing": {
    "rules": [
      {
        "id": "automated-scan-main",
        "activity": "automated_scanning",
        "state": "permitted",
        "target_ids": [
          "main-web"
        ],
        "conditions": {
          "max_requests_per_second": 2,
          "max_concurrent_requests": 2,
          "required_user_agent_token": "security-research"
        }
      }
    ]
  },
  "reporting": {
    "requested_fields": [
      "affected_asset",
      "description",
      "reproduction_steps",
      "impact"
    ],
    "proof_of_exploitation": "not_requested"
  },
  "response_targets": {
    "acknowledgement_days": 2,
    "initial_assessment_days": 10,
    "update_interval_days": 14
  },
  "disclosure": {
    "approach": "coordinated",
    "default_days": 90
  },
  "critical_extensions": [],
  "extensions": {}
}
]]></sourcecode>
        <t>For <tt>https://example.com/</tt>, both entries match.  The <tt>out</tt> entry wins regardless
of array order, producing the normative status <tt>not-covered</tt> as specified by
corpus vector <tt>scope-out-wins</tt>.</t>
        <!-- evaluation-vector: scope-out-wins -->

</section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC3339">
          <front>
            <title>Date and Time on the Internet: Timestamps</title>
            <author fullname="G. Klyne" initials="G." surname="Klyne"/>
            <author fullname="C. Newman" initials="C." surname="Newman"/>
            <date month="July" year="2002"/>
            <abstract>
              <t>This document defines a date and time format for use in Internet protocols that is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3339"/>
          <seriesInfo name="DOI" value="10.17487/RFC3339"/>
        </reference>
        <reference anchor="RFC3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="RFC5646">
          <front>
            <title>Tags for Identifying Languages</title>
            <author fullname="A. Phillips" initials="A." role="editor" surname="Phillips"/>
            <author fullname="M. Davis" initials="M." role="editor" surname="Davis"/>
            <date month="September" year="2009"/>
            <abstract>
              <t>This document describes the structure, content, construction, and semantics of language tags for use in cases where it is desirable to indicate the language used in an information object. It also describes how to register values for use in language tags and the creation of user-defined extensions for private interchange. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="47"/>
          <seriesInfo name="RFC" value="5646"/>
          <seriesInfo name="DOI" value="10.17487/RFC5646"/>
        </reference>
        <reference anchor="RFC5890">
          <front>
            <title>Internationalized Domain Names for Applications (IDNA): Definitions and Document Framework</title>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <date month="August" year="2010"/>
            <abstract>
              <t>This document is one of a collection that, together, describe the protocol and usage context for a revision of Internationalized Domain Names for Applications (IDNA), superseding the earlier version. It describes the document collection and provides definitions and other material that are common to the set. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5890"/>
          <seriesInfo name="DOI" value="10.17487/RFC5890"/>
        </reference>
        <reference anchor="RFC5891">
          <front>
            <title>Internationalized Domain Names in Applications (IDNA): Protocol</title>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <date month="August" year="2010"/>
            <abstract>
              <t>This document is the revised protocol definition for Internationalized Domain Names (IDNs). The rationale for changes, the relationship to the older specification, and important terminology are provided in other documents. This document specifies the protocol mechanism, called Internationalized Domain Names in Applications (IDNA), for registering and looking up IDNs in a way that does not require changes to the DNS itself. IDNA is only meant for processing domain names, not free text. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5891"/>
          <seriesInfo name="DOI" value="10.17487/RFC5891"/>
        </reference>
        <reference anchor="RFC5952">
          <front>
            <title>A Recommendation for IPv6 Address Text Representation</title>
            <author fullname="S. Kawamura" initials="S." surname="Kawamura"/>
            <author fullname="M. Kawashima" initials="M." surname="Kawashima"/>
            <date month="August" year="2010"/>
            <abstract>
              <t>As IPv6 deployment increases, there will be a dramatic increase in the need to use IPv6 addresses in text. While the IPv6 address architecture in Section 2.2 of RFC 4291 describes a flexible model for text representation of an IPv6 address, this flexibility has been causing problems for operators, system engineers, and users. This document defines a canonical textual representation format. It does not define a format for internal storage, such as within an application or database. It is expected that the canonical format will be followed by humans and systems when representing IPv6 addresses as text, but all implementations must accept and be able to handle any legitimate RFC 4291 format. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5952"/>
          <seriesInfo name="DOI" value="10.17487/RFC5952"/>
        </reference>
        <reference anchor="RFC6838">
          <front>
            <title>Media Type Specifications and Registration Procedures</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="January" year="2013"/>
            <abstract>
              <t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols. This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="13"/>
          <seriesInfo name="RFC" value="6838"/>
          <seriesInfo name="DOI" value="10.17487/RFC6838"/>
        </reference>
        <reference anchor="RFC6839">
          <front>
            <title>Additional Media Type Structured Syntax Suffixes</title>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <author fullname="A. Melnikov" initials="A." surname="Melnikov"/>
            <date month="January" year="2013"/>
            <abstract>
              <t>A content media type name sometimes includes partitioned meta- information distinguished by a structured syntax to permit noting an attribute of the media as a suffix to the name. This document defines several structured syntax suffixes for use with media type registrations. In particular, it defines and registers the "+json", "+ber", "+der", "+fastinfoset", "+wbxml" and "+zip" structured syntax suffixes, and provides a media type structured syntax suffix registration form for the "+xml" structured syntax suffix. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6839"/>
          <seriesInfo name="DOI" value="10.17487/RFC6839"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8259">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <reference anchor="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="RFC9116">
          <front>
            <title>A File Format to Aid in Security Vulnerability Disclosure</title>
            <author fullname="E. Foudil" initials="E." surname="Foudil"/>
            <author fullname="Y. Shafranovich" initials="Y." surname="Shafranovich"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>When security vulnerabilities are discovered by researchers, proper reporting channels are often lacking. As a result, vulnerabilities may be left unreported. This document defines a machine-parsable format ("security.txt") to help organizations describe their vulnerability disclosure practices to make it easier for researchers to report vulnerabilities.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9116"/>
          <seriesInfo name="DOI" value="10.17487/RFC9116"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
        <reference anchor="RFC8615">
          <front>
            <title>Well-Known Uniform Resource Identifiers (URIs)</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="May" year="2019"/>
            <abstract>
              <t>This memo defines a path prefix for "well-known locations", "/.well-known/", in selected Uniform Resource Identifier (URI) schemes.</t>
              <t>In doing so, it obsoletes RFC 5785 and updates the URI schemes defined in RFC 7230 to reserve that space. It also updates RFC 7595 to track URI schemes that support well-known URIs in their registry.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8615"/>
          <seriesInfo name="DOI" value="10.17487/RFC8615"/>
        </reference>
        <reference anchor="JSON-SCHEMA-2020-12" target="https://json-schema.org/draft/2020-12/json-schema-core.html">
          <front>
            <title>JSON Schema Core, Draft 2020-12</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="CVD-POLICY-SPEC" target="https://github.com/cvd-policy/spec/commit/a7e359ac2bc2efbc89febc7c4a5cd42dec03eade">
          <front>
            <title>CVD Policy Version 1 Specification, Schema, and Conformance Corpus</title>
            <author>
              <organization/>
            </author>
            <date year="2026" month="September" day="01"/>
          </front>
        </reference>
        <reference anchor="CVD-POLICY-CORE" target="https://github.com/cvd-policy/web/commit/acc609efc4adc33683cc6c71acd57a8a8e06169b">
          <front>
            <title>TypeScript Reference Implementation for CVD Policy Version 1</title>
            <author>
              <organization/>
            </author>
            <date year="2026" month="September" day="01"/>
          </front>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
u4Ffoa9W7DLsxxSQBB6dwqG6/wUNsTu6OcIAAA==

-->

</rfc>
