I do security research for a living, so I’d rather hear about a problem in my own things
than not. If you’ve found something, this page tells you how to reach me and what to
expect.
The machine-readable version is at/.well-known/security.txt.
How to reach me
Email: carl.sampson@gmail.com
Encryption: For anything sensitive, encrypt to my PGP key — the key and fingerprint
are on the GPG page. I’d rather you over-encrypt than send something in the clear
you later wish you hadn’t.
I’m one person, not a security team. There’s no ticketing system behind this, so plain
email is the fastest path.
Scope
In scope
chs.usand its subdomains- csp-toolkit and anything else I publish under my own name
- The interactive tools on this site — the security playground
and tools pages
Out of scope
- The
.fyinetwork sites — those are separate properties; report those to the contact
listed on the site in question - Anything belonging to my employer. If it’s a Microsoft product or service, please go
through MSRC instead. I can’t act on those reports
here and routing them through me only slows you down. - Third-party services this site depends on (the host, the CDN, the comment system
upstream). Happy to forward, but they’ll respond faster than I can relay.
Findings I’m unlikely to act on
This is a static site. Reports that amount to a missing header with no demonstrated
impact, a rate-limit observation on a page with no state, SPF/DMARC opinions unrelated to
a real spoofing path, or raw scanner output with no analysis, will get a polite reply and
not much else. If you can show me impact, I’m interested regardless of category.
What to include
What you did, what happened, and what you expected instead. A request and response pair,
or a short script, beats a screenshot of a scanner verdict. If you’re not certain
something is real, send it anyway — I’d rather read a false positive than miss a genuine
issue.
What you can expect from me
- An acknowledgement that I’ve received it, and a straight answer on whether I think it’s
a genuine issue - A fix, or an explanation of why I’m not fixing it — I won’t leave you guessing
- Credit in the commit or write-up, unless you’d prefer to stay anonymous. Tell me how
you’d like to be named - No legal threats, and no attempt to silence you
I don’t run a paid bounty and can’t offer money. What I can offer is a fast reply and
honest attribution.
What I ask of you
- Give me a reasonable chance to ship a fix before you publish. I’m not going to hold you
to an arbitrary deadline, and I’d rather agree on timing together than have a fight
about it later - Don’t access, modify, or delete data that isn’t yours. If you stumble into someone
else’s data, stop and tell me what you saw - Don’t degrade the service for other people. Automated scanning is fine; hammering the
site until it falls over is not - No social engineering, phishing, or physical attacks against me or anyone else
Safe harbor
If you follow this policy in good faith, I will not pursue or support legal action against
you for your research, and I’ll treat your work as authorized. If a third party takes
action over something you did while following this policy, I’ll make it known that you
were acting within it.
Good faith is the operative phrase, and I’m not going to pretend I can define every edge
of it in advance. If you’re unsure whether something is in bounds, ask me first — that
conversation has never once gone badly.
When I’m the one reporting
The reverse case, for anyone curious how I handle findings in your code: I report
privately first and don’t publish until a fix is available. No deadline theatrics, no
dropping details to make a point. If you’re engaging in good faith I’ll wait as long as
the work honestly takes. If you go quiet on something users are exposed to, I’ll say that
publicly before I say what the bug is.
Fixed, published work is on the research page.