Skip to content

Commit 24a2c04

Browse files
committed
fix: reject nonregular runtime archive members
1 parent 49fec20 commit 24a2c04

1 file changed

Lines changed: 6 additions & 0 deletions

File tree

‎runtime/codeguard_runtime.cjs‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,12 @@ function installTarball(file, root = cacheRoot()) {
127127
|| JSON.stringify(list.stdout.trim().split('\n').sort()) !== JSON.stringify(EXPECTED_MEMBERS)) {
128128
fail('tarball_members_invalid');
129129
}
130+
const kinds = spawnSync(SYSTEM_TAR, ['-tvzf', file], { encoding: 'utf8', shell: false, timeout: 10000, maxBuffer: 8192 });
131+
if (kinds.error || kinds.status !== 0 || kinds.signal
132+
|| kinds.stdout.trim().split('\n').length !== EXPECTED_MEMBERS.length
133+
|| kinds.stdout.trim().split('\n').some((entry) => !entry.startsWith('-'))) {
134+
fail('tarball_member_type_invalid');
135+
}
130136
const unpack = spawnSync(SYSTEM_TAR, ['-xzf', file, '-C', staging], { shell: false, timeout: 10000, maxBuffer: 8192 });
131137
if (unpack.error || unpack.status !== 0 || unpack.signal) fail('tarball_extract_failed');
132138
verifyPackage(path.join(staging, 'package'), lock);

0 commit comments

Comments
 (0)