@@ -3734,6 +3734,21 @@ Type: Documentation-only
3734
3734
` process.features.tls_alpn ` , ` process.features.tls_ocsp ` , and ` process.features.tls_sni ` are
3735
3735
deprecated, as their values are guaranteed to be identical to that of ` process.features.tls ` .
3736
3736
3737
+ ### DEP0190: Passing ` args ` to ` node:child_process ` ` execFile ` /` spawn ` with ` shell ` option ` true `
3738
+
3739
+ <!-- YAML
3740
+ changes:
3741
+ - version:
3742
+ - REPLACEME
3743
+ pr-url: https://github.com/nodejs/node/pull/57389
3744
+ description: Documentation-only deprecation.
3745
+ -->
3746
+
3747
+ Type: Documentation-only
3748
+
3749
+ When an ` args ` array is passed to [ ` child_process.execFile ` ] [ ] or [ ` child_process.spawn ` ] [ ] with the option
3750
+ ` { shell: true } ` , the values are not escaped, only space-separated, which can lead to shell injection.
3751
+
3737
3752
[ NIST SP 800-38D ] : https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf
3738
3753
[ RFC 6066 ] : https://tools.ietf.org/html/rfc6066#section-3
3739
3754
[ RFC 8247 Section 2.4 ] : https://www.rfc-editor.org/rfc/rfc8247#section-2.4
@@ -3762,6 +3777,8 @@ deprecated, as their values are guaranteed to be identical to that of `process.f
3762
3777
[ `assert` ] : assert.md
3763
3778
[ `asyncResource.runInAsyncScope()` ] : async_context.md#asyncresourceruninasyncscopefn-thisarg-args
3764
3779
[ `buffer.subarray` ] : buffer.md#bufsubarraystart-end
3780
+ [ `child_process.execFile` ] : child_process.md#child_processexecfilefile-args-options-callback
3781
+ [ `child_process.spawn` ] : child_process.md#child_processspawncommand-args-options
3765
3782
[ `child_process` ] : child_process.md
3766
3783
[ `clearInterval()` ] : timers.md#clearintervaltimeout
3767
3784
[ `clearTimeout()` ] : timers.md#cleartimeouttimeout
0 commit comments