Security.txt RFC 9116 check — check your security contact file online

Lints security.txt against RFC 9116 and the EU Cyber Resilience Act reporting contact point that has applied since 11 September 2026. Runs entirely in your browser — nothing is uploaded.

Same engine as the VS Code extension, byte for byte.

Install free

Free for the file open in your editor - no key, no limit. The workspace sweep and the report ask for a key.

VS Code MarketplaceOpen VSX (Cursor, VSCodium)npmMCP server (npx)Docker HubApify (audit live URLs)
ext install ReadyStack.security-txt-cra-lint
npx @readystack/security-txt-cra-lint <file>
npx @readystack/security-txt-cra-lint --mcp

Team? One key for every ReadyStack linter, 5 seats, $149 once

Get the full rule table as a PDF
All 13 rules security.txt Lint - RFC 9116 + CRA contact point checks, each with its source and date, on printable pages you can hand to your team or auditor. We email it now, and once more only if a rule changes. No newsletter.

Get the full version $29

Scan every security.txt across the whole workspace in one pass and export a dated JSON report you keep for the audit file.

One payment, one licence key for this tool. The key is shown right after payment.

A security consultant reviewing a disclosure contact and policy starts around $150 an hour

Buy the full version — $29
ENDEJAESPT

Find a tool

· ReadyStack

Worked example

Real numbers from this tool, line by line.

security.txt Lint - RFC 9116 + CRA contact point

9 findings in a 10-line file, and the one that matters most is that the vulnerability contact point expired 75 days ago: that is what security.txt Lint returns for a platform maintainer who ships software into the EU and has not opened /.well-known/security.txt since the day it was written.

Since 11 September 2026, Article 14 of the EU Cyber Resilience Act (Regulation (EU) 2024/2847) has been in force for reporting. When a vulnerability in your product is actively exploited, three clocks start: an early warning to your CSIRT and ENISA within 24 hours, a vulnerability notification within 72 hours, and a final report within 14 days. The penalty ceiling for getting the reporting duty wrong is 15 million euro or 2.5% of worldwide annual turnover.

Every one of those clocks starts when the report reaches you. There is one machine-readable place a stranger looks for where to send it: the security.txt file at /.well-known/ on your domain. RFC 9116 is short and blunt about what makes that file real. Contact is mandatory and must be a URI. Expires is mandatory, must be a full RFC 3339 timestamp, and if the timestamp has passed, the file MUST be ignored. A researcher's tooling does not argue: it reads the date, drops the file, and the researcher falls back to a public post. Your 24-hour clock then starts from a tweet you did not see.

What the linter reads

security.txt Lint applies 13 rules inside VS Code, each reported on the line where the problem is:

The sample file shipped with the extension is ten lines long and looks fine to a human eye. The linter returns 9 findings on it: 5 errors and 4 warnings. The first error is the date arithmetic no chatbot can do for you, because it does not know what today is: Expires ran out on 2026-06-30, which was 75 days before the lint.

Free, and the next job

Linting the file you have open is free and complete. All 13 rules, every line number, no key, no watermark, no limit on how many times you run it. The same engine runs in the browser, so you can paste in a file from a server you have not cloned.

The next job is different in scope and in what you keep. A company that ships more than one product has more than one security.txt: one per domain, one per white-label deployment, one buried in a static site repository. The full version sweeps every security.txt in the workspace in one pass and writes a dated JSON report you keep and attach to an audit file or a customer security questionnaire. It is 29 dollars once, one licence key per person or team seat. A security consultant reviewing a disclosure contact and policy starts around 150 dollars an hour, and that review is a snapshot that goes stale on the day the Expires value passes.

Run it on your own file first. If it comes back clean, you have lost thirty seconds. If it comes back with an expired Expires line, you have learned that for two months nobody could tell you your product was being exploited.

15 seconds — what it actually does

Questions people ask

What does security.txt Lint actually do?

It reads a security.txt file and applies 13 rules from RFC 9116 and the EU Cyber Resilience Act disclosure expectation. It flags a missing or expired Expires line, a Contact that is not a URI, http:// URIs, duplicated fields, a Canonical that is not the /.well-known path, a CSAF link that is not provider-metadata.json, unknown field names and unparsable lines, each on its own line number.

Who is this for?

Maintainers, platform and security engineers who ship software or connected products into the EU and own the /.well-known/security.txt file for their domain. If a stranger finding a live exploit has to guess where to send it, this file is your job, and since 11 September 2026 the Cyber Resilience Act treats it as part of your reporting duty.

Why is a free checker or a chatbot not enough?

Since 11 September 2026 the EU Cyber Resilience Act, Regulation (EU) 2024/2847 Article 14, gives you 24 hours for an early warning, 72 hours for a notification and 14 days for a final report on an actively exploited vulnerability, with fines up to 15 million euro or 2.5% of turnover. A chatbot cannot know today's date, so it will not tell you your Expires line ran out 75 days ago.

What is free and what does the full version add?

Linting the file you have open is free and complete: all 13 rules, every line, no key, no watermark, no limit on how often you run it. The full version changes the scope and the ownership. It scans every security.txt in the workspace in one pass and exports a dated JSON report you keep and attach to an audit or a customer questionnaire.

What would this cost me otherwise?

A security consultant reviewing a disclosure contact point and policy starts around $150 an hour, and the review is a snapshot that goes stale the day the Expires value passes. The extension is $29 once, runs on every save, and on the sample file in this repository it returns 9 findings from a 10-line file in under a second.

Why not just ask ChatGPT or another AI chat?

A general AI chat answers from training data with a cutoff date, cannot read your repository and names no rule version. security.txt Lint - RFC 9116 and CRA contact point checks the file you open against 13 rules, each naming its legal or official basis, from a rule set dated 2026-09-20, and points at the exact line. For a filing, an audit or a client you need that dated result on your own files.

Ask about this tool

One question, answered by the person who built it. Your email only if you want the answer sent.

Embed this tool on your site (free)

Paste this code into your page. It runs in your visitor’s browser and stays up to date. Nothing your visitors type is stored.

 All embeddable tools

For businesses: your name and logo instead of ours, and each visitor’s result + e-mail in your inbox (only when they tick consent) — Pro from $19/month. See Pro →