VDB
Sign up
MEDIUM6.3

GHSA-2p49-45hj-7mc9

@backstage/cli-common has a possible `resolveSafeChildPath` Symlink Chain Bypass

Quick fix

GHSA-2p49-45hj-7mc9 — @backstage/cli-common: upgrade to the fixed version with the command below.

npm install @backstage/cli-common@0.1.17

Details

### Impact

The `resolveSafeChildPath` utility function in `@backstage/backend-plugin-api`, which is used to prevent path traversal attacks, failed to properly validate symlink chains and dangling symlinks. An attacker could bypass the path validation by:

1. **Symlink chains**: Creating `link1 → link2 → /outside` where intermediate symlinks eventually resolve outside the allowed directory 2. **Dangling symlinks**: Creating symlinks pointing to non-existent paths outside the base directory, which would later be created during file operations

This function is used by Scaffolder actions and other backend components to ensure file operations stay within designated directories.

### Patches

This vulnerability is fixed in `@backstage/backend-plugin-api` version 0.1.17. Users should upgrade to this version or later.

### Workarounds

- Run Backstage in a containerised environment with limited filesystem access - Restrict template creation to trusted users

Are you affected?

Enter the version of the package you're using.

Affected packages

npm/@backstage/cli-common
Introduced in: 0Fixed in: 0.1.17
Fixnpm install @backstage/cli-common@0.1.17

References