Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -522,7 +522,15 @@ The following are **not** vulnerabilities in Node.js:
* **Operator-controlled flags**: Behavior unlocked by flags the operator
explicitly passes (e.g., `--localstorage-file`) is the operator's
responsibility. The permission model does not restrict how Node.js behaves
when the operator intentionally configures it.
when the operator intentionally configures it. This includes any file or
resource that Node.js itself creates, writes, or reads at a location the
operator selected through a flag, including every path derived from a
template or pattern in that flag. For example, trace files rotated by
`--trace-event-file-pattern` (`${rotation}`) being written without a
matching `--allow-fs-write` entry is not a permission model bypass. Such
paths are part of the operator's configuration, not application file-system
access. Inconsistent checks on these paths are treated as regular bugs and
should be reported through the public issue tracker.

* **`node:sqlite` and the permission model**: `DatabaseSync` operates with the
same file-system privileges as the process. Using SQL pragmas or built-in
Expand Down
8 changes: 8 additions & 0 deletions doc/api/permissions.md
Original file line number Diff line number Diff line change
Expand Up @@ -354,6 +354,14 @@ There are constraints you need to know before using this system:
to read files before environment initialization. As a result, such flags are
not subject to the rules of the Permission Model. The same applies for V8
flags that can be set via runtime through `v8.setFlagsFromString`.
* Files that Node.js itself creates, writes, or reads at a location selected
by an operator flag may not be consistently checked against the Permission
Model, in particular when the flag accepts a template or pattern that
expands to several paths. For example, trace files rotated by
`--trace-event-file-pattern` (`${rotation}`) can be written even when the
expanded path is not covered by `--allow-fs-write`. Because the location is
chosen by the operator, gaps like this are treated as regular bugs rather
than vulnerabilities. Please report them through the regular issue tracker.
* OpenSSL engines cannot be requested at runtime when the Permission
Model is enabled, affecting the built-in crypto, https, and tls modules.
* Run-Time Loadable Extensions cannot be loaded when the Permission Model is
Expand Down
Loading