Debugging httpx in the ProjectDiscovery stack: binary conflicts, Go modules, and PATH
This incident looked like an httpx flag issue, but root cause was Linux binary name resolution.
The target pipeline
subfinder -d domain.com -silent | httpx -silent -status-code -title -tech-detect | nuclei -severity critical,high
The misleading error
Usage: httpx [OPTIONS] URL
Error: No such option: -s
The command used -silent, not -s. That mismatch usually means wrong executable.
Root cause
type -a httpx
Two binaries existed:
/usr/bin/httpx(Python package)/root/go/bin/httpx(ProjectDiscovery)
Shell was resolving to /usr/bin/httpx.
Effective fix
rm -f /usr/bin/httpx /bin/httpx
cp "$(go env GOPATH)"/bin/httpx /usr/local/bin/httpx
chmod +x /usr/local/bin/httpx
hash -r
Hardening checklist
- use
type -a(not onlywhich); - verify
httpx -version; - clear shell hash after binary changes;
- standardize operational binaries in
/usr/local/bin; - use
pdtmfor managed updates when appropriate.
Conclusion
This was not an application bug. It was a binary collision plus PATH precedence. Fixing environment resolution restored a predictable recon pipeline.
This post is licensed under CC BY-NC.
Comments
Join the discussion below.
Comments are not configured yet. Add Cusdis settings in /assets/json/config/blog-comments-config.json.