Safeguard
Security Guides•

Does a software vendor need a security.txt file, and what should it say?

RFC 9116 defines security.txt: where it lives, the two required fields, and why an expired file is a small but real signal when you review a vendor.

Safeguard Security Team
3 min read

A security.txt file is a plain text file at /.well-known/security.txt that tells researchers how to report a vulnerability. RFC 9116 makes two fields mandatory: Contact and Expires. It is not a legal duty for most vendors, but a missing or expired file is a quick signal when you review one.

What RFC 9116 says

The standard places the file under the /.well-known/ path of a domain, served over HTTPS as plain text in UTF-8. A copy at the top level is allowed for older tooling, but the /.well-known/ version takes precedence if both exist.

Only two fields must be present. Contact gives a way to report, such as an email address or web page, and several can be listed in order of preference. Expires is a date and time after which the data is stale, written in the RFC 3339 profile of ISO 8601. The RFC recommends setting it less than a year ahead and says researchers should not rely on a file past its expiry.

Optional fields include Policy, Encryption, Acknowledgments, Hiring, Preferred-Languages and Canonical.

Why a CTO should care

When you evaluate a company to acquire or integrate, you want to know what happens when someone outside finds a flaw. The file answers three things in thirty seconds:

  • Is there a named channel, or does a researcher have to guess?
  • Has anyone maintained it? An Expires date in the past suggests nobody looked at it.
  • Is there a published policy about what researchers may and may not do?

It does not prove the vendor responds well. It proves that somebody thought about the question.

A 5 minute check

  1. Open the vendor's domain plus /.well-known/security.txt in a browser.
  2. Confirm it loads over HTTPS and shows readable text.
  3. Check the Expires date against today.
  4. Open the Policy link if there is one, and read what is promised.
  5. Send a harmless test message to the Contact address only if the vendor's policy invites it, and note whether you get an acknowledgement.

If the file is absent, look for a vulnerability disclosure page on the main site, and ask the vendor directly. Many good teams have the process and have never published the file.

What a good file looks like

A short example, for reference only:

Contact: mailto:security@example.com
Expires: 2027-06-30T23:59:59z
Policy: https://example.com/security/policy
Preferred-Languages: en

Questions to ask in the follow up

  • Who reads the Contact mailbox and how fast do they reply?
  • What happened the last time a report came in? Ask for a sanitised example.
  • How are fixes announced to customers?

Safeguard focuses on the code and dependency side of this problem, with SBOM scanning, zero-day discovery and policy gates. If you publish software yourself, a free scan is a way to check your own house before a researcher does.

Quick check

Is security.txt a certification?

No. It is a contact convention described in an RFC. It does not attest to anything about the vendor's security.

What if the file is expired?

Treat it as a prompt to ask who owns it. The RFC says researchers should not rely on data past its expiry.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.