How to fix the whole catagory of shell injection
How to fix the whole catagory of shell injection
Posted Dec 7, 2024 20:15 UTC (Sat) by raven667 (subscriber, #5198)In reply to: How to fix the whole catagory of shell injection by NYKevin
Parent article: Abusing Git branch names to compromise a PyPI package
I think that is where my half-formed thought was going, in this specific case the commands could just be an array of yaml strings and the ci could parse into an argv before applying template variable replacement. That wouldn't work when you have some if/then logic but a shell-like dsl with a very restricted feature set could make transition easier, or just building expression evaluation into the yaml along with your template engine, similar to how Ansible has Python/Jinja `when:` expressions, there is some customization/integration to be sure but they didn't have to invent a whole custom system, and experience with the library transfers between different tools in the same ecosystem.
I'm just frustrated at seeing this same kind of problem again
