Skip to content

Security: INNERLUXES/defect-library-check

SECURITY.md

Security

Reporting a problem

Use private vulnerability reporting on this repository (the Security tab, "Report a vulnerability"). Please do not open a public issue for a vulnerability.

Include a small made-up library and label table that show the problem, the command you ran, what you expected and what happened. Use made-up class names, part ids and image paths, never data of a real product or the name of a real company, and never a real key, token or password, even an old one.

Scope

The tool reads the text of a defect library file and of a label table, and, when asked, asks whether the images the table names exist. It never opens an image, it is not a validation, it is not a certification and it is not legal or regulatory advice. In scope:

  • an input that makes the tool read a file other than the ones it was given, or follow a symbolic link
  • an image path that makes the tool ask about, or open, a name outside the images folder, however it is written (a parent segment, a full path, a drive letter, a share, a colon, a reserved Windows name, a link inside the folder)
  • an input that makes the tool open an image or read any byte of one
  • an input that makes the tool open a network connection, fetch a URL, write or sign anything, run any other program, or evaluate anything it reads, such as an anchor, a tag or a string in the YAML, the JSON or a cell of the table
  • an input that makes the tool write a file
  • an input that makes the tool hang, take very long, exhaust the stack or use unbounded memory, such as a very large file, brackets nested very deep, hundreds of thousands of rows, thousands of columns or classes, a cell of the longest length, a line of many quotes, one image path on every row, or tens of thousands of parts that sit in two splits
  • binary or invalid input that the tool reads as if it were a library or a table
  • a key written twice that is read without an error, a misspelt key or column that is not reported, or two classes that differ only in case that are taken for one
  • a library or table that docs/method.md says is reported (a class with no definition, a label that is not a class, a part in two splits, an image in two splits, a split with no defect, no test split) that the tool does not report
  • a run that passes at a --fail-on level although the input holds a finding at that level that docs/method.md says is reported, or a file that cannot be read and still passes
  • text from a file or a file name that rewrites the terminal through control or direction characters, is shown unescaped in the output, puts markup into the markdown report or breaks the XML of the JUnit report
  • a name such as __proto__ that changes how objects behave inside the tool

Out of scope: the problems docs/limits.md says the tool does not see, whether a library is good, whether a method is valid, whether a rule applies to a product or is met (the tool names EU GMP Annex 1 and cannot tell), what a labelling tool does with a file, who may change or upload the files, and where your pipeline keeps the output.

Read docs/threat-model.md for the rest.

There aren't any published security advisories