(no title)
bramblerose | 5 months ago
Yet with GHA I need to update actions/checkout@v2 to actions/checkout@vwhatever (or, what I'm doing now, actions/checkout@main because the actual API haven't actually changed) because... some Node version is "out of maintenance"?!
GHA is literally code execution as a service. Why would I care whether the Node runner has a security vulnerability?
toomuchtodo|5 months ago
"Why do I care if there is a potentially insecure code interpreter in my arbitrary code execution service?"
As someone where appsec is a component of my work in financial services, please believe you should care.
burnt-resistor|5 months ago
haskellshill|5 months ago
nicoburns|5 months ago
haskellshill|5 months ago
danpalmer|5 months ago
When I build my software I care less about eliminating security vulnerabilities (after all, I need to build while updating to fix security issues), but also don't need, or ideally don't want any external access. A vulnerability in the build toolchain should be encoded into the artifacts but shouldn't necessarily prevent artifacts being generated.
However when I automate processes, like categorising bugs etc, I care a lot about eliminating security vulnerabilities because there is necessary external access, often write access, to my sensitive data.
GitHub considers these two things the same, but they're distinct use-cases with distinct approaches to maintenance, updating, and security.
apatheticonion|5 months ago
That's what I do and it's pretty stable: https://github.com/alshdavid-templates/siteforge/blob/main/....
koolba|5 months ago
Couple more thoughts and unsolicited feedback from a quick eyeball:
- Use https://
- Wrap everything in a shell function to ensure that partial content is not executed.
- Wrap variable substitutions with "${OUTPUT_DIR}" to prevent arg splitting if they contain whitespace. Line 124, `rm -rf $OUT_DIR_INSTALL` is pretty scary if invoked with whitespace in OUT_DIR.
- Download nodejs tarball to temp directory and then extract them to prevent partial extraction
bramblerose|5 months ago
easton|5 months ago
I’m guessing they know you don’t care, but the big company customers cant have a CVE anywhere and won’t accept a EOL node version so they can check a box on something.
(I guess there’s also people with self hosted runners, who might be running them inside networks that aren’t segmented.)
Wowfunhappy|5 months ago
csomar|5 months ago
Because that "build" process has free access to your repo and potentially your organization. If your repo is also where you deploy from, then potentially deploying a vulnerable version of your software, live to your users.
turboponyy|5 months ago
solid_fuel|5 months ago
madeofpalk|5 months ago
thiht|5 months ago
Just update your dependencies, it's not that hard. And it's even easier when you do it routinely as part of a deprecation planning.
rkagerer|5 months ago
As in, kills your old build code dead?
cryptonector|5 months ago
zenmac|5 months ago
Then don't use Docker. You never know the image you are using will be outdated.
tuananh|5 months ago
tracker1|5 months ago
niffydroid|5 months ago