Nonsensical Command

LOW

RUN command uses 'cd' which doesn't persist. Use WORKDIR instead.

Rule Information

Language
Docker
Category
Best Practice
Author
Shivasurya
Shivasurya
Last Updated
2026-03-22
Tags
dockerdockerfilecdworkdirdirectoryshellbest-practiceanti-patternconfusing
CWE References

Interactive Playground

Experiment with the vulnerable code and security rule below. Edit the code to see how the rule detects different vulnerability patterns.

pathfinder scan --ruleset docker/DOCKER-BP-030 --project .
1
2
3
4
5
rule.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

About This Rule

Understanding the vulnerability and how it is detected

Detects 'cd' command appearing in the middle or end of a RUN instruction chain (after ; or &&). Using cd this way is confusing and indicates the developer may not understand that WORKDIR should be used instead.

How to Fix

Recommended remediation steps

  • 1Review your Dockerfile to address the nonsensical command issue
  • 2Follow Docker official best practices for image building
  • 3Use docker build --check to validate Dockerfile syntax and best practices

References

External resources and documentation

Similar Rules

Explore related security rules for Docker

Frequently Asked Questions

Common questions about Nonsensical Command

RUN command uses 'cd' which doesn't persist. Use WORKDIR instead.
Review the secure code example in the playground above and apply the recommended pattern to your Dockerfile or docker-compose.yml.

New feature

Get these findings posted directly on your GitHub pull requests

The Nonsensical Command rule runs in CI and posts inline review comments on the exact lines — no dashboard, no SARIF viewer.

See how it works