TMA-POSTGRES-1.6
Verify That 'PGPASSWORD' is Not Set in Users' Profiles
MediumLevel 1Automatedpostgres
Description
PostgreSQL can read a default database password from an environment variable called PGPASSWORD. Run as root; counts Bash login scripts in /home/*, /root and /etc/environment that mention PGPASSWORD (other shells need manual review).
How it is checked
Audit method: Shell command
shell
[ "$(id -u)" -eq 0 ] || exit 1; n=$(grep -ls PGPASSWORD /home/*/.bashrc /home/*/.profile /home/*/.bash_profile /root/.bashrc /root/.profile /root/.bash_profile /etc/environment 2>/dev/null | wc -l); echo "$n"- Expected output
0
How it is fixed
Fix method: Guidance or infrastructure patch
Remove PGPASSWORD from the listed login scripts and use ~/.pgpass (mode 0600), a service file without passwords, or certificate/peer authentication instead.
Properties
- Operating systems
- Any
- Tags
- postgresdatabasecredentials
- Reference
- CIS PostgreSQL 18 Benchmark v1.0.0 - 1.6 Verify That 'PGPASSWORD' is Not Set in Users' Profiles
Check this host
Run this on a machine you are allowed to audit. The scan is read-only.
shell
tmaegis scan --target postgres