Skip to content

Commit a284bca

Browse files
RafaelGSSaduh95
authored andcommitted
doc: clarify permission model scope for output paths
Flags such --trace-event-file or any other flag that specifies a directory are subject to permission model rules, but a "bypass" isn't considered a vulnerability while it doesn't pose a risk to the user application Signed-off-by: RafaelGSS <rafael.nunu@hotmail.com> PR-URL: #66004 Reviewed-By: Filip Skokan <panva.ip@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
1 parent 0a14c25 commit a284bca

2 files changed

Lines changed: 17 additions & 1 deletion

File tree

‎SECURITY.md‎

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -500,7 +500,15 @@ The following are **not** vulnerabilities in Node.js:
500500
* **Operator-controlled flags**: Behavior unlocked by flags the operator
501501
explicitly passes (e.g., `--localstorage-file`) is the operator's
502502
responsibility. The permission model does not restrict how Node.js behaves
503-
when the operator intentionally configures it.
503+
when the operator intentionally configures it. This includes any file or
504+
resource that Node.js itself creates, writes, or reads at a location the
505+
operator selected through a flag, including every path derived from a
506+
template or pattern in that flag. For example, trace files rotated by
507+
`--trace-event-file-pattern` (`${rotation}`) being written without a
508+
matching `--allow-fs-write` entry is not a permission model bypass. Such
509+
paths are part of the operator's configuration, not application file-system
510+
access. Inconsistent checks on these paths are treated as regular bugs and
511+
should be reported through the public issue tracker.
504512

505513
* **`node:sqlite` and the permission model**: `DatabaseSync` operates with the
506514
same file-system privileges as the process. Using SQL pragmas or built-in

‎doc/api/permissions.md‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,14 @@ There are constraints you need to know before using this system:
341341
to read files before environment initialization. As a result, such flags are
342342
not subject to the rules of the Permission Model. The same applies for V8
343343
flags that can be set via runtime through `v8.setFlagsFromString`.
344+
* Files that Node.js itself creates, writes, or reads at a location selected
345+
by an operator flag may not be consistently checked against the Permission
346+
Model, in particular when the flag accepts a template or pattern that
347+
expands to several paths. For example, trace files rotated by
348+
`--trace-event-file-pattern` (`${rotation}`) can be written even when the
349+
expanded path is not covered by `--allow-fs-write`. Because the location is
350+
chosen by the operator, gaps like this are treated as regular bugs rather
351+
than vulnerabilities. Please report them through the regular issue tracker.
344352
* OpenSSL engines cannot be requested at runtime when the Permission
345353
Model is enabled, affecting the built-in crypto, https, and tls modules.
346354
* Run-Time Loadable Extensions cannot be loaded when the Permission Model is

0 commit comments

Comments
 (0)