Name | CVE-2020-1736 |
Description | A flaw was found in Ansible Engine when a file is moved using atomic_move primitive as the file mode cannot be specified. This sets the destination files world-readable if the destination file does not exist and if the file exists, the file could be changed to have less restrictive permissions before the move. This could lead to the disclosure of sensitive data. All versions in 2.7.x, 2.8.x and 2.9.x branches are believed to be vulnerable. |
Source | CVE (at NVD; CERT, LWN, oss-sec, fulldisc, Red Hat, Ubuntu, Gentoo, SUSE bugzilla/CVE, GitHub advisories/code/issues, web search, more) |
Debian Bugs | 966663 |
Vulnerable and fixed packages
The table below lists information on source packages.
Source Package | Release | Version | Status |
---|
ansible (PTS) | jessie, jessie (lts) | 1.7.2+dfsg-2+deb8u3 | vulnerable |
| stretch (security), stretch (lts), stretch | 2.2.1.0-2+deb9u3 | vulnerable |
| buster (security), buster, buster (lts) | 2.7.7+dfsg-1+deb10u2 | vulnerable |
| bullseye | 2.10.7+merged+base+2.10.17+dfsg-0+deb11u1 | vulnerable |
| bookworm | 7.7.0+dfsg-3+deb12u1 | vulnerable |
| sid, trixie | 10.5.0+dfsg-2 | vulnerable |
The information below is based on the following data on fixed versions.
Package | Type | Release | Fixed Version | Urgency | Origin | Debian Bugs |
---|
ansible | source | wheezy | (unfixed) | end-of-life | | |
ansible | source | (unstable) | (unfixed) | unimportant | | 966663 |
Notes
https://bugzilla.redhat.com/show_bug.cgi?id=1802124
https://github.com/ansible/ansible/issues/67794 (closed upstream)
https://github.com/ansible/ansible/pull/70221 (not merged)
The issue will not be fixed source-wise, but to avoid the issue raised in
CVE-2020-1736 one should specify a mode parameter in all file-based tasks
that accept it, cf. https://github.com/ansible/ansible/commit/7eec8e4d268d6711f317583974e9e936083de636
That just leaves a race condition in place where newly created files that
specify a mode in the task briefly go from (666 - umask) to the final mode.
An alternative workaround if many new files are ansible.builtin.copy mode=preserve
that preserve file mode from controller to managed host.
Documentation fix: https://github.com/ansible/ansible/commit/bc37976df2ac455a4b74d48eb824803ef27df7bc