VDB
Sign up
MEDIUM6.8

GHSA-p493-635q-r6gr

Remote code execution via the `pretty` option.

Quick fix

GHSA-p493-635q-r6gr — pug: upgrade to the fixed version with the command below.

npm install pug@3.0.1

Details

### Impact

If a remote attacker was able to control the `pretty` option of the pug compiler, e.g. if you spread a user provided object such as the query parameters of a request into the pug template inputs, it was possible for them to achieve remote code execution on the node.js backend.

### Patches

Upgrade to `pug@3.0.1` or `pug-code-gen@3.0.2` or `pug-code-gen@2.0.3`, which correctly sanitise the parameter.

### Workarounds

If there is no way for un-trusted input to be passed to pug as the `pretty` option, e.g. if you compile templates in advance before applying user input to them, you do not need to upgrade.

### References

Original report: https://github.com/pugjs/pug/issues/3312

### For more information

If you believe you have found other vulnerabilities, please **DO NOT** open an issue. Instead, you can follow the instructions in our [Security Policy](https://github.com/pugjs/pug/blob/master/SECURITY.md)

Are you affected?

Enter the version of the package you're using.

Affected packages

npm/pug
Introduced in: 0Fixed in: 3.0.1
Fixnpm install pug@3.0.1
npm/pug-code-gen
Introduced in: 0Fixed in: 2.0.3
Fixnpm install pug-code-gen@2.0.3
npm/pug-code-gen
Introduced in: 3.0.0Fixed in: 3.0.2
Fixnpm install pug-code-gen@3.0.2

References