CVE-2016-3096
Link Following in ansible
The create_script function in the lxc_container module in Ansible before 1.9.6-1 and 2.x before 2.0.2.0 allows local users to write to arbitrary files or gain privileges via a symlink attack on (1) /opt/.lxc-attach-script, (2) the archived container in the archive_path directory, or the (3) lxc-attach-script.log or (4) lxc-attach-script.err files in the temporary directory.
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
NVD Score used
7.8
The create_script function in the lxc_container module in Ansible before 1.9.6-1 and 2.x before 2.0.2.0 allows local users to write to arbitrary files or gain privileges via a symlink attack on (1) /opt/.lxc-attach-script, (2) the archived container in the archive_path directory, or the (3) lxc-attach-script.log or (4) lxc-attach-script.err files in the temporary directory.
- Record
CVE-2016-3096- CVSS 3.0
- 7.8 High
CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - CVSS 2.0
- 7.2 High
AV:L/AC:L/Au:N/C:C/I:C/A:C - Weakness
- CWE-59
- Updated
- 2026-11-02
CVE List No score
The create_script function in the lxc_container module in Ansible before 1.9.6-1 and 2.x before 2.0.2.0 allows local users to write to arbitrary files or gain privileges via a symlink attack on (1) /opt/.lxc-attach-script, (2) the archived container in the archive_path directory, or the (3) lxc-attach-script.log or (4) lxc-attach-script.err files in the temporary directory.
- Record
CVE-2016-3096- Updated
- 2026-11-02
EUVDEUVD-2016-0001 No score
The create_script function in the lxc_container module in Ansible before 1.9.6-1 and 2.x before 2.0.2.0 allows local users to write to arbitrary files or gain privileges via a symlink attack on (1) /opt/.lxc-attach-script, (2) the archived container in the archive_path directory, or the (3) lxc-attach-script.log or (4) lxc-attach-script.err files in the temporary directory.
- Record
EUVD-2016-0001- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-rh6x-qvg7-rrmj
8.5
Link Following in ansible
The create_script function in the lxc_container module in Ansible before 1.9.6-1 and 2.x before 2.0.2.0 allows local users to write to arbitrary files or gain privileges via a symlink attack on (1) /opt/.lxc-attach-script, (2) the archived container in the archive_path directory, or the (3) lxc-attach-script.log or (4) lxc-attach-script.err files in the temporary directory.
- Record
GHSA-rh6x-qvg7-rrmj- CVSS 4.0
- 8.5 High
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - CVSS 3.0
- 7.8 High
CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-59
- Updated
- 2026-11-02
OSV
7.8
The create_script function in the lxc_container module in Ansible before 1.9.6-1 and 2.x before 2.0.2.0 allows local users to write to arbitrary files or gain privileges via a symlink attack on (1) /opt/.lxc-attach-script, (2) the archived container in the archive_path directory, or the (3) lxc-attach-script.log or (4) lxc-attach-script.err files in the temporary directory.
- Record
CVE-2016-3096- CVSS 3.0
- 7.8 High
CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVDEBIAN-CVE-2016-3096
7.8
The create_script function in the lxc_container module in Ansible before 1.9.6-1 and 2.x before 2.0.2.0 allows local users to write to arbitrary files or gain privileges via a symlink attack on (1) /opt/.lxc-attach-script, (2) the archived container in the archive_path directory, or the (3) lxc-attach-script.log or (4) lxc-attach-script.err files in the temporary directory.
- Record
DEBIAN-CVE-2016-3096- CVSS 3.0
- 7.8 High
CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
Show 10 moreShow less
OSVGHSA-rh6x-qvg7-rrmj
8.5
Link Following in ansible
The create_script function in the lxc_container module in Ansible before 1.9.6-1 and 2.x before 2.0.2.0 allows local users to write to arbitrary files or gain privileges via a symlink attack on (1) /opt/.lxc-attach-script, (2) the archived container in the archive_path directory, or the (3) lxc-attach-script.log or (4) lxc-attach-script.err files in the temporary directory.
- Record
GHSA-rh6x-qvg7-rrmj- CVSS 4.0
- 8.5 High
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - CVSS 3.0
- 7.8 High
CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-59
- Updated
- 2026-11-02
OSVUBUNTU-CVE-2016-3096
7.8
The create_script function in the lxc_container module in Ansible before 1.9.6-1 and 2.x before 2.0.2.0 allows local users to write to arbitrary files or gain privileges via a symlink attack on (1) /opt/.lxc-attach-script, (2) the archived container in the archive_path directory, or the (3) lxc-attach-script.log or (4) lxc-attach-script.err files in the temporary directory.
- Record
UBUNTU-CVE-2016-3096- CVSS 3.0
- 7.8 High
CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVMGASA-2016-0163 No score
Updated ansible packages fix CVE-2016-3096
Updated ansible package fixes security vulnerability:
A vulnerability in lxc_container, ansible module, was found allowing to get root inside the container. The problem is in the create_script function, which tries to write to /opt/.lxc-attach-script inside of the container. If the attacker can write to /opt/.lxc-attach-script before that, he can overwrite arbitrary files or execute commands as root (CVE-2016-3096).
- Record
MGASA-2016-0163- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:10326-1 No score
ansible-2.2.0.0-1.1 on GA media
These are all security issues fixed in the ansible-2.2.0.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:10326-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:14244-1 No score
ansible-9-9.8.0-1.1 on GA media
These are all security issues fixed in the ansible-9-9.8.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:14244-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:14536-1 No score
ansible-10-10.6.0-1.1 on GA media
These are all security issues fixed in the ansible-10-10.6.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:14536-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2025:15605-1 No score
ansible-11-11.11.0-1.1 on GA media
These are all security issues fixed in the ansible-11-11.11.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2025:15605-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2025:15753-1 No score
ansible-12-12.2.0-1.1 on GA media
These are all security issues fixed in the ansible-12-12.2.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2025:15753-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:10944-1 No score
ansible-13-13.7.0-1.1 on GA media
These are all security issues fixed in the ansible-13-13.7.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:10944-1- Updated
- 2026-11-02
OSVPYSEC-2016-1 No score
The create_script function in the lxc_container module in Ansible before 1.9.6-1 and 2.x before 2.0.2.0 allows local users to write to arbitrary files or gain privileges via a symlink attack on (1) /opt/.lxc-attach-script, (2) the archived container in the archive_path directory, or the (3) lxc-attach-script.log or (4) lxc-attach-script.err files in the temporary directory.
- Record
PYSEC-2016-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
ansiblePyPI |
through 1.9.6.0 | 1.9.6.1 |
ansiblePyPI |
2.0.0.0 to 2.0.1.0 | 2.0.2.0 |
ansibleDebian:12 |
before 2.0.1.0-2 | 2.0.1.0-2 |
ansibleDebian:13 |
before 2.0.1.0-2 | 2.0.1.0-2 |
ansibleDebian:14 |
before 2.0.1.0-2 | 2.0.1.0-2 |
ansiblePyPI |
2.0.0.0 up to 2.0.2.0, plus listed versions 2.0.02.0.0.12.0.0.22.0.1.0 |
2.0.2.0 |
ansiblePyPI |
before 1.9.6.1, plus listed versions 1.01.11.21.2.11.2.2 Show 45 moreShow less1.2.31.3.01.3.11.3.21.3.31.3.41.41.4.11.4.21.4.31.4.41.4.51.51.5.11.5.21.5.31.5.41.5.51.61.6.11.6.101.6.21.6.31.6.41.6.51.6.61.6.71.6.81.6.91.71.7.11.7.21.81.8.11.8.21.8.31.8.41.9.01.9.0.11.9.11.9.21.9.31.9.41.9.51.9.6 |
1.9.6.1 |
ansibleMageia:5 |
before 1.9.6-1.mga5 | 1.9.6-1.mga5 |
ansiblePyPI |
before 2.0.2.0, plus listed versions 1.01.11.21.2.11.2.2 Show 45 moreShow less1.2.31.3.01.3.11.3.21.3.31.3.41.41.4.11.4.21.4.31.4.41.4.51.51.5.11.5.21.5.31.5.41.5.51.61.6.11.6.101.6.21.6.31.6.41.6.51.6.61.6.71.6.81.6.91.71.7.11.7.21.81.8.11.8.21.8.31.8.41.9.01.9.0.11.9.11.9.21.9.31.9.41.9.51.9.6 |
2.0.2.0 |
ansibleUbuntu:16.04:LTS |
before 2.0.0.2-2ubuntu1.3, plus listed versions 1.9.2+dfsg-21.9.4-12.0.0.2-22.0.0.2-2ubuntu12.0.0.2-2ubuntu1.12.0.0.2-2ubuntu1.2 |
2.0.0.2-2ubuntu1.3 |
Show 6 moreShow less
| Package | Affected | Fixed |
|---|---|---|
ansibleopenSUSE:Tumbleweed |
before 2.2.0.0-1.1 | 2.2.0.0-1.1 |
ansible-9openSUSE:Tumbleweed |
before 9.8.0-1.1 | 9.8.0-1.1 |
ansible-10openSUSE:Tumbleweed |
before 10.6.0-1.1 | 10.6.0-1.1 |
ansible-11openSUSE:Tumbleweed |
before 11.11.0-1.1 | 11.11.0-1.1 |
ansible-12openSUSE:Tumbleweed |
before 12.2.0-1.1 | 12.2.0-1.1 |
ansible-13openSUSE:Tumbleweed |
before 13.7.0-1.1 | 13.7.0-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| aliases | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2016-3096 is a high vulnerability (CVSS 7.8) in Redhat Ansible, published May 5, 2016. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.47%, the 40th percentile. Fixed in ansible 1.9.6.1.
References
bugzilla.redhat.com/show_bug.cgi?id=1322925
lists.fedoraproject.org/pipermail/package-announce/2016-April/183274.html
lists.fedoraproject.org/pipermail/package-announce/2016-April/183252.html
github.com/ansible/ansible-modules-extras/pull/1941/commits/8c6fe646ee79f5e55361b885b7efed5bec72d4a4
lists.fedoraproject.org/pipermail/package-announce/2016-May/184175.html
github.com/ansible/ansible/blob/v2.0.2.0-1/CHANGELOG.md
Show 64 moreShow less
lists.fedoraproject.org/pipermail/package-announce/2016-April/183132.html
lists.fedoraproject.org/pipermail/package-announce/2016-April/183103.html
groups.google.com/forum
security.gentoo.org/glsa/201607-14
github.com/ansible/ansible-modules-extras/pull/1941
github.com/ansible/ansible/blob/v1.9.6-1/CHANGELOG.md
nvd.nist.gov/vuln/detail/CVE-2016-3096
github.com/advisories/GHSA-rh6x-qvg7-rrmj
github.com/ansible/ansible-modules-extras/commit/7c3999a92a1cd856ff9bc8913a93ff1aee8bffc3
github.com/pypa/advisory-database/tree/main/vulns/ansible/PYSEC-2016-1.yaml
security-tracker.debian.org/tracker/CVE-2016-3096
github.com/ansible/ansible
advisories.mageia.org/MGASA-2016-0163.html
bugs.mageia.org/show_bug.cgi?id=18275
github.com/ansible/ansible/blob/stable-1.9/CHANGELOG.md
ubuntu.com/security/CVE-2016-3096
sources.debian.net/src/ansible/2.0.1.0-1/lib/ansible/modules/extras/cloud/lxc/lxc_container.py?hl=523
cve.org/CVERecord?id=CVE-2016-3096
suse.com/security/cve/CVE-2014-4966
suse.com/security/cve/CVE-2014-4967
suse.com/security/cve/CVE-2015-3908
suse.com/security/cve/CVE-2016-3096
suse.com/security/cve/CVE-2016-9587
suse.com/security/cve/CVE-2017-7466
suse.com/security/cve/CVE-2017-7481
suse.com/security/cve/CVE-2017-7550
suse.com/security/cve/CVE-2018-10855
suse.com/security/cve/CVE-2018-10875
suse.com/security/cve/CVE-2018-16837
suse.com/security/cve/CVE-2018-16859
suse.com/security/cve/CVE-2018-16876
suse.com/security/cve/CVE-2019-10156
suse.com/security/cve/CVE-2019-10206
suse.com/security/cve/CVE-2019-10217
suse.com/security/cve/CVE-2019-14846
suse.com/security/cve/CVE-2019-14856
suse.com/security/cve/CVE-2019-14858
suse.com/security/cve/CVE-2019-14864
suse.com/security/cve/CVE-2019-14904
suse.com/security/cve/CVE-2019-14905
suse.com/security/cve/CVE-2019-3828
suse.com/security/cve/CVE-2020-10684
suse.com/security/cve/CVE-2020-10685
suse.com/security/cve/CVE-2020-10691
suse.com/security/cve/CVE-2020-10729
suse.com/security/cve/CVE-2020-14330
suse.com/security/cve/CVE-2020-14332
suse.com/security/cve/CVE-2020-1733
suse.com/security/cve/CVE-2020-1734
suse.com/security/cve/CVE-2020-1735
suse.com/security/cve/CVE-2020-1736
suse.com/security/cve/CVE-2020-1737
suse.com/security/cve/CVE-2020-1738
suse.com/security/cve/CVE-2020-1739
suse.com/security/cve/CVE-2020-1740
suse.com/security/cve/CVE-2020-1744
suse.com/security/cve/CVE-2020-1746
suse.com/security/cve/CVE-2020-1753
suse.com/security/cve/CVE-2021-20178
suse.com/security/cve/CVE-2021-20180
suse.com/security/cve/CVE-2021-20191
suse.com/security/cve/CVE-2021-20228
suse.com/security/cve/CVE-2021-3583
lists.opensuse.org/archives/list/[email protected]/thread/7LWEIR2LXW4QRWCY6HDMLUO2OTX5OZIC
Left out here: 5 versions. The JSON record has them.