You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2026/09/07 02:07:30 UTC
(groovy) branch master updated: minor wording threat model clarification re picocli @-expansion
This is an automated email from the ASF dual-hosted git repository.
paulk-asert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/master by this push:
new e28ead4664 minor wording threat model clarification re picocli @-expansion
e28ead4664 is described below
commit e28ead46643207f145e8a6f65d9f68643f82c6b9
Author: Paul King <pa...@asert.com.au>
AuthorDate: Mon Sep 7 12:07:21 2026 +1000
minor wording threat model clarification re picocli @-expansion
---
THREAT_MODEL.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/THREAT_MODEL.md b/THREAT_MODEL.md
index ea026c21aa..cf95ee9374 100644
--- a/THREAT_MODEL.md
+++ b/THREAT_MODEL.md
@@ -302,6 +302,7 @@ hunt for the former and discount the latter.
| `jdk.xml.maxElementDepth` | `1000` (Groovy's default; the JAXP default is `0`, unlimited) | Caps the element nesting depth `XmlParser`/`XmlSlurper`/`DOMBuilder` accept, so a deeply nested document fails the parse rather than driving a `StackOverflowError` in the first consumer that walks the result. Set the property yourself to choose another bound, including `0` for unlimited; a caller-supplied parser is left alone. Available from 6.0.0. *(documented — verified in `groovy-xml` `Factor [...]
| Grape / `@Grab` resolution | enabled in the runtime; **off** in AI/automation tooling via `-Dgroovy.grape.enable=false` | Controls whether a script may fetch and load remote dependencies. Keep off for untrusted scripts. *(documented — see [`AGENTS.md`](AGENTS.md))* |
| `groovy.asttest.enable` | `true` | When `false`, `@ASTTest` becomes a no-op instead of evaluating its closure during compilation. Since the closure runs at compile time, this matters wherever attacker-influenced source is *compiled*, whether or not the result is then run. Keep off for untrusted source. Available from 5.1.0 and 6.0.0. *(documented — verified in `ASTTestTransformation`)* |
+| `CliBuilder.expandArgumentFiles` | `true` | When `true`, an argv token `@file` expands to the contents of `file` (the javac/picocli `@argfile` convention). The argument vector is developer-supplied and trusted ([§6](#6-assumptions-about-inputs)), so this reads only files the invoker named; set `false` (or call `setExpandArgumentFiles(false)`) to disable. *(documented — verified in `CliBuilderInternal`)* |
| `SecureASTCustomizer` allow/deny lists | none unless configured | A *partial* grammar restriction, not a sandbox. *(documented)* |
| `groovy.antlr4.cache.threshold` and similar | tuning | Resource tuning, not a security boundary. |