Skip to main content

Module guard

Module guard 

Source
Expand description

Refusing to inject variables that grant code execution in the child.

prk run -- <cmd> puts secret values into a child’s environment. A handful of variable names are read by the dynamic loader or a language runtime before the program’s own first instruction, so whoever controls their value controls what the program does. LD_PRELOAD is the canonical example.

That turns a compromised or hostile server into arbitrary code execution on every machine that runs prk run. The server is not in the trust boundary for this: it stores secrets, it does not get to choose what code runs.

So those names are refused by default and require --allow-unsafe-env. The classification itself lives in prick_core::keyname; this module is the policy that consumes it.

Structs§

EnvGuard
The policy applied to a set of secrets before they reach a child.

Enums§

GuardError
A rejected injection.