There are two kinds of report: a value the catalog gets wrong, and a security issue in the code. They go to different places.
Never include real personal data in a report: not your own, not a customer's, not one found in a log. Make up a value that is found, or missed, the same way. For an identifier with a check digit, take a value from the test vectors or the issuer's published examples and change it, or compute a valid check digit for invented digits. A report that seems to contain a real person's identifier may be deleted, and you will be asked to file it again with an invented value.
Reports are read within a few days.
A missed or false identifier
A false negative (a value that is personal data and is not found) or a false positive (a value that is found and is not that identifier) is not a security issue. Open a public GitHub issue at https://github.com/signalvaultio/pii_catalog/issues with this template:
Pattern: (the name, e.g. iban, or "none" for an identifier not in the catalog)
Kind: false negative | false positive
Version: (mix.lock or `mix deps | grep pii_catalog`)
Elixir / OTP: (elixir --version)
Text (invented values only):
Reference: DE89 3704 0044 0532 0130 00
Expected: (what should be found, or nothing)
Got: (the output of PiiCatalog.find/2 or scan/2)
How the identifier is written in practice:
(the separators, case and keywords people use for it, and a source:
the issuer's documentation, a form, a style guide)For a false negative, say whether the value is missed by the regex
(PiiCatalog.scan/2 does not return it) or refused by the validator
(scan/2 returns it and find/2 does not). For a false positive, say what
the value really is (an order number, a date, a product code): the fix is
usually a look-alike added to test/vectors/<name>.exs and a tighter regex
or check.
Some known limits are listed in the README under "Precision". A report of one of them is still welcome if you can show it is common in real text.
A security issue in the code
For a vulnerability in the code itself, report it privately through GitHub's security advisories. That includes:
- a catalog regex that takes time out of proportion to the size of the text;
- input that makes a catalog pattern reach the regex engine's match limit,
so that
PiiCatalog.find/2raisesPiiCatalog.ScanErrorinstead of scanning the text; - input that makes the scanner raise any other error.
Report it at https://github.com/signalvaultio/pii_catalog/security/advisories/new
Please do not open a public issue for these. Include the version, a minimal input that shows the problem (invented values only, as above) and what you observed.
Supported versions
Fixes are released for the latest minor version only.