CVE-2019-17361
SaltStack Salt is vulnerable to command injection
In SaltStack Salt through 2019.2.0, the salt-api NET API with the ssh client enabled is vulnerable to command injection. This allows an unauthenticated attacker with network access to the API endpoint to execute arbitrary code on the salt-api host.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
NVD Score used
9.8
In SaltStack Salt through 2019.2.0, the salt-api NET API with the ssh client enabled is vulnerable to command injection. This allows an unauthenticated attacker with network access to the API endpoint to execute arbitrary code on the salt-api host.
- Record
CVE-2019-17361- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - CVSS 2.0
- 6.8 Medium
AV:N/AC:M/Au:N/C:P/I:P/A:P - Weakness
- CWE-77
- Updated
- 2026-11-02
CVE List No score
In SaltStack Salt through 2019.2.0, the salt-api NET API with the ssh client enabled is vulnerable to command injection. This allows an unauthenticated attacker with network access to the API endpoint to execute arbitrary code on the salt-api host.
- Record
CVE-2019-17361- Updated
- 2026-11-02
EUVDEUVD-2020-0176 No score
In SaltStack Salt through 2019.2.0, the salt-api NET API with the ssh client enabled is vulnerable to command injection. This allows an unauthenticated attacker with network access to the API endpoint to execute arbitrary code on the salt-api host.
- Record
EUVD-2020-0176- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-q53j-p6r2-g2v4
9.8
SaltStack Salt is vulnerable to command injection
In SaltStack Salt before 2019.2.3, the salt-api NET API with the ssh client enabled is vulnerable to command injection. This allows an unauthenticated attacker with network access to the API endpoint to execute arbitrary code on the salt-api host.
- Record
GHSA-q53j-p6r2-g2v4- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-77
- Updated
- 2026-11-02
OSVALPINE-CVE-2019-17361
9.8
In SaltStack Salt through 2019.2.0, the salt-api NET API with the ssh client enabled is vulnerable to command injection. This allows an unauthenticated attacker with network access to the API endpoint to execute arbitrary code on the salt-api host.
- Record
ALPINE-CVE-2019-17361- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-03
OSV
9.8
In SaltStack Salt through 2019.2.0, the salt-api NET API with the ssh client enabled is vulnerable to command injection. This allows an unauthenticated attacker with network access to the API endpoint to execute arbitrary code on the salt-api host.
- Record
CVE-2019-17361- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
Show 11 moreShow less
OSVGHSA-q53j-p6r2-g2v4
9.8
SaltStack Salt is vulnerable to command injection
In SaltStack Salt before 2019.2.3, the salt-api NET API with the ssh client enabled is vulnerable to command injection. This allows an unauthenticated attacker with network access to the API endpoint to execute arbitrary code on the salt-api host.
- Record
GHSA-q53j-p6r2-g2v4- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-77
- Updated
- 2026-11-02
OSVUBUNTU-CVE-2019-17361
9.8
In SaltStack Salt through 2019.2.0, the salt-api NET API with the ssh client enabled is vulnerable to command injection. This allows an unauthenticated attacker with network access to the API endpoint to execute arbitrary code on the salt-api host.
- Record
UBUNTU-CVE-2019-17361- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVopenSUSE-SU-2020:0357-1 No score
Security update for salt
This update for salt fixes the following issues:
- Avoid possible user escalation upgrading salt-master (bsc#1157465) (CVE-2019-18897)
- Fix unit tests failures in test_batch_async tests
- Batch Async: Handle exceptions, properly unregister and close instances after running async batching to avoid CPU starvation of the MWorkers (bsc#1162327)
- RHEL/CentOS 8 uses platform-python instead of python3
- New configuration option for selection of grains in the minion start event.
- Fix 'os_family' grain for Astra Linux Common Edition
- Fix for salt-api NET API where unauthenticated attacker could run arbitrary code (CVE-2019-17361) (bsc#1162504)
- Adds disabled parameter to mod_repo in aptpkg module Move token with atomic operation Bad API token files get deleted (bsc#1160931)
- Support for Btrfs and XFS in parted and mkfs added
- Adds list_downloaded for apt Module to enable pre-downloading support Adds virt.(pool|network)_get_xml functions
- Various libvirt updates:
- Add virt.pool_capabilities function
- virt.pool_running improvements
- Add virt.pool_deleted state
- virt.network_define allow adding IP configuration
- virt: adding kernel boot parameters to libvirt xml
- Fix to scheduler when data['run'] does not exist (bsc#1159118)
- Fix virt states to not fail on VMs already stopped
- Fix applying of attributes for returner rawfile_json (bsc#1158940)
- xfs: do not fail if type is not present (bsc#1153611)
- Fix errors when running virt.get_hypervisor function
- Align virt.full_info fixes with upstream Salt
- Fix for log checking in x509 test
- Read repo info without using interpolation (bsc#1135656)
- Limiting M2Crypto to >= SLE15
- Replacing pycrypto with M2Crypto (bsc#1165425)
This update was imported from the SUSE:SLE-15-SP1:Update update project.
- Record
openSUSE-SU-2020:0357-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:11364-1 No score
python3-salt-3002.2-6.1 on GA media
These are all security issues fixed in the python3-salt-3002.2-6.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:11364-1- Updated
- 2026-11-02
OSVPYSEC-2020-177 No score
In SaltStack Salt through 2019.2.0, the salt-api NET API with the ssh client enabled is vulnerable to command injection. This allows an unauthenticated attacker with network access to the API endpoint to execute arbitrary code on the salt-api host.
- Record
PYSEC-2020-177- Updated
- 2026-11-02
OSVSUSE-RU-2020:0625-1 No score
Recommended update for Salt
This update fixes the following issues:
salt:
- RHEL/CentOS 8 uses platform-python instead of python3
- New configuration option for selection of grains in the minion start event.
- Fix 'os_family' grain for Astra Linux Common Edition
- Fix for salt-api NET API where unauthenticated attacker could run arbitrary code (CVE-2019-17361) (bsc#1162504)
- Adds disabled parameter to mod_repo in aptpkg module
- Move token with atomic operation
- Bad API token files get deleted (bsc#1160931)
- Support for Btrfs and XFS in parted and mkfs added
- Adds list_downloaded for apt Module to enable pre-downloading support
- Adds virt.(pool|network)_get_xml functions
- Virt: adding kernel boot parameters to libvirt xml
- Fix to scheduler when data['run'] does not exist (bsc#1159118)
- Fix virt states to not fail on VMs already stopped
- Fix applying of attributes for returner rawfile_json (bsc#1158940)
- Xfs: do not fail if type is not present (bsc#1153611)
- Don't use __python indirection macros on spec file %__python is no longer defined in RPM 4.15 (python2 is going EOL in Jan 2020); additionally, python/python3 are just binaries in the path.
- Fix errors when running virt.get_hypervisor function
- Align virt.full_info fixes with upstream Salt
- Fix for log checking in x509 test
- Prevent test_mod_del_repo_multiline_values to fail
- Read repo info without using interpolation (bsc#1135656)
- Replacing pycrypto with M2Crypto as dependency for >= SLE15 (bsc#1165425)
- Batch Async: Handle exceptions, properly unregister and close instances after running async batching to avoid CPU starvation of the MWorkers (bsc#1162327)
- Avoid possible user escalation upgrading salt-master (bsc#1157465) (CVE-2019-18897)
- Record
SUSE-RU-2020:0625-1- Updated
- 2026-11-02
OSVSUSE-RU-2020:0685-1 No score
Recommended update for Salt
This update fixes the following issues:
salt:
- RHEL/CentOS 8 uses platform-python instead of python3
- New configuration option for selection of grains in the minion start event.
- Fix 'os_family' grain for Astra Linux Common Edition
- Fix for salt-api NET API where unauthenticated attacker could run arbitrary code (CVE-2019-17361) (bsc#1162504)
- Adds disabled parameter to mod_repo in aptpkg module
- Move token with atomic operation
- Bad API token files get deleted (bsc#1160931)
- Support for Btrfs and XFS in parted and mkfs added
- Adds list_downloaded for apt Module to enable pre-downloading support
- Adds virt.(pool|network)_get_xml functions
- Virt: adding kernel boot parameters to libvirt xml
- Fix to scheduler when data['run'] does not exist (bsc#1159118)
- Fix virt states to not fail on VMs already stopped
- Fix applying of attributes for returner rawfile_json (bsc#1158940)
- Xfs: do not fail if type is not present (bsc#1153611)
- Don't use __python indirection macros on spec file %__python is no longer defined in RPM 4.15 (python2 is going EOL in Jan 2020); additionally, python/python3 are just binaries in the path.
- Fix errors when running virt.get_hypervisor function
- Align virt.full_info fixes with upstream Salt
- Fix for log checking in x509 test
- Prevent test_mod_del_repo_multiline_values to fail
- Read repo info without using interpolation (bsc#1135656)
- Replacing pycrypto with M2Crypto as dependency for >= SLE15 (bsc#1165425)
- Batch Async: Handle exceptions, properly unregister and close instances after running async batching to avoid CPU starvation of the MWorkers (bsc#1162327)
- Avoid possible user escalation upgrading salt-master (bsc#1157465) (CVE-2019-18897)
- Record
SUSE-RU-2020:0685-1- Updated
- 2026-11-02
OSVSUSE-SU-2020:0538-1 No score
Security Beta update for Salt
This update fixes the following issues:
salt:
- Fix 'os_family' grain for Astra Linux Common Edition
- Update to Salt version 2019.2.3 (CVE-2019-17361) (bsc#1163981) See release notes: https://docs.saltstack.com/en/latest/topics/releases/2019.2.3.html
- Enable passing grains to start event based on 'start_event_grains' configuration parameter
- Record
SUSE-SU-2020:0538-1- Updated
- 2026-11-02
OSVSUSE-SU-2020:0540-1 No score
Security Beta update for Salt
This update fixes the following issues:
salt:
- Fix 'os_family' grain for Astra Linux Common Edition
- Update to Salt version 2019.2.3 (CVE-2019-17361) (bsc#1163981) See release notes: https://docs.saltstack.com/en/latest/topics/releases/2019.2.3.html
- Enable passing grains to start event based on 'start_event_grains' configuration parameter
- Record
SUSE-SU-2020:0540-1- Updated
- 2026-11-02
OSVSUSE-SU-2020:0684-1 No score
Security update for salt
This update for salt fixes the following issues:
- Avoid possible user escalation upgrading salt-master (bsc#1157465) (CVE-2019-18897)
- Fix unit tests failures in test_batch_async tests
- Batch Async: Handle exceptions, properly unregister and close instances after running async batching to avoid CPU starvation of the MWorkers (bsc#1162327)
- RHEL/CentOS 8 uses platform-python instead of python3
- New configuration option for selection of grains in the minion start event.
- Fix 'os_family' grain for Astra Linux Common Edition
- Fix for salt-api NET API where unauthenticated attacker could run arbitrary code (CVE-2019-17361) (bsc#1162504)
- Adds disabled parameter to mod_repo in aptpkg module Move token with atomic operation Bad API token files get deleted (bsc#1160931)
- Support for Btrfs and XFS in parted and mkfs added
- Adds list_downloaded for apt Module to enable pre-downloading support Adds virt.(pool|network)_get_xml functions
- Various libvirt updates:
- Add virt.pool_capabilities function
- virt.pool_running improvements
- Add virt.pool_deleted state
- virt.network_define allow adding IP configuration
- virt: adding kernel boot parameters to libvirt xml
- Fix to scheduler when data['run'] does not exist (bsc#1159118)
- Fix virt states to not fail on VMs already stopped
- Fix applying of attributes for returner rawfile_json (bsc#1158940)
- xfs: do not fail if type is not present (bsc#1153611)
- Fix errors when running virt.get_hypervisor function
- Align virt.full_info fixes with upstream Salt
- Fix for log checking in x509 test
- Read repo info without using interpolation (bsc#1135656)
- Limiting M2Crypto to >= SLE15
- Replacing pycrypto with M2Crypto (bsc#1165425)
- Record
SUSE-SU-2020:0684-1- Updated
- 2026-11-02
OSVUSN-4459-1 No score
salt vulnerabilities
It was discovered that Salt allows remote attackers to determine which files exist on the server. An attacker could use that to extract sensitive information. (CVE-2018-15750)
It was discovered that Salt has a vulnerability that allows an user to bypass authentication. An attacker could use that to extract sensitive information, execute abritrary code or crash the server. (CVE-2018-15751)
It was discovered that Salt is vulnerable to command injection. This allows an unauthenticated attacker with network access to the API endpoint to execute arbitrary code on the salt-api host. (CVE-2019-17361)
It was discovered that Salt incorrectly validated method calls and sanitized paths. A remote attacker could possibly use this issue to access some methods without authentication. (CVE-2020-11651, CVE-2020-11652)
- Record
USN-4459-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
saltPyPI |
before 2019.2.3 | 2019.2.3 |
saltAlpine:v3.12 |
before 2019.2.3-r0 | 2019.2.3-r0 |
saltAlpine:v3.13 |
before 2019.2.3-r0 | 2019.2.3-r0 |
saltAlpine:v3.14 |
before 2019.2.3-r0 | 2019.2.3-r0 |
saltAlpine:v3.15 |
before 2019.2.3-r0 | 2019.2.3-r0 |
saltAlpine:v3.16 |
before 2019.2.3-r0 | 2019.2.3-r0 |
saltAlpine:v3.17 |
before 2019.2.3-r0 | 2019.2.3-r0 |
saltAlpine:v3.18 |
before 2019.2.3-r0 | 2019.2.3-r0 |
saltAlpine:v3.19 |
before 2019.2.3-r0 | 2019.2.3-r0 |
saltAlpine:v3.20 |
before 2019.2.3-r0 | 2019.2.3-r0 |
Show 24 moreShow less
| Package | Affected | Fixed |
|---|---|---|
saltAlpine:v3.21 |
before 2019.2.3-r0 | 2019.2.3-r0 |
saltAlpine:v3.22 |
before 2019.2.3-r0 | 2019.2.3-r0 |
saltAlpine:v3.23 |
before 2019.2.3-r0 | 2019.2.3-r0 |
saltAlpine:v3.24 |
before 2019.2.3-r0 | 2019.2.3-r0 |
saltDebian:9 |
before 2016.11.2+ds-1+deb9u3, plus listed versions 2016.11.2+ds-12016.11.2+ds-1+deb9u12016.11.2+ds-1+deb9u2 |
2016.11.2+ds-1+deb9u3 |
saltDebian:10 |
before 2018.3.4+dfsg1-6+deb10u1, plus listed versions 2018.3.4+dfsg1-6 |
2018.3.4+dfsg1-6+deb10u1 |
saltPyPI |
before 2019.2.3, plus listed versions 0.10.00.10.10.10.20.10.30.10.4 Show 45 moreShow less0.10.50.11.00.11.10.12.00.12.10.13.00.13.10.13.20.13.30.14.00.14.10.15.00.15.10.15.20.15.30.15.900.16.00.16.10.16.20.16.30.16.40.17.00.17.0rc10.17.10.17.20.17.30.17.40.17.50.8.70.8.90.9.00.9.10.9.20.9.30.9.40.9.50.9.60.9.70.9.80.9.90.9.9.12014.1.02014.1.0rc12014.1.0rc22014.1.0rc3 |
2019.2.3 |
saltPyPI |
before 2019.2.1, plus listed versions 0.10.00.10.10.10.20.10.30.10.4 Show 45 moreShow less0.10.50.11.00.11.10.12.00.12.10.13.00.13.10.13.20.13.30.14.00.14.10.15.00.15.10.15.20.15.30.15.900.16.00.16.10.16.20.16.30.16.40.17.00.17.0rc10.17.10.17.20.17.30.17.40.17.50.8.70.8.90.9.00.9.10.9.20.9.30.9.40.9.50.9.60.9.70.9.80.9.90.9.9.12014.1.02014.1.0rc12014.1.0rc22014.1.0rc3 |
2019.2.1 |
saltSUSE:Linux Enterprise High Performance Computing 15-ESPOS |
before 2019.2.0-5.64.1 | 2019.2.0-5.64.1 |
saltSUSE:Linux Enterprise High Performance Computing 15-LTSS |
before 2019.2.0-5.64.1 | 2019.2.0-5.64.1 |
saltSUSE:Linux Enterprise Server 15-LTSS |
before 2019.2.0-5.64.1 | 2019.2.0-5.64.1 |
saltSUSE:Linux Enterprise Server for SAP Applications 15 |
before 2019.2.0-5.64.1 | 2019.2.0-5.64.1 |
saltSUSE:Manager Client Tools 12 |
before 2019.2.0-46.88.1 | 2019.2.0-46.88.1 |
saltSUSE:Linux Enterprise Module for Advanced Systems Management 12 |
before 2019.2.0-46.88.1 | 2019.2.0-46.88.1 |
saltSUSE:Linux Enterprise Point of Sale 12 SP2 |
before 2019.2.0-46.88.1 | 2019.2.0-46.88.1 |
saltSUSE:Manager Proxy 3.2 |
before 2019.2.0-46.88.1 | 2019.2.0-46.88.1 |
saltSUSE:Manager Server 3.2 |
before 2019.2.0-46.88.1 | 2019.2.0-46.88.1 |
saltSUSE:Linux Enterprise Module for Basesystem 15 SP1 |
before 2019.2.0-6.24.1 | 2019.2.0-6.24.1 |
saltSUSE:Linux Enterprise Module for Python 2 15 SP1 |
before 2019.2.0-6.24.1 | 2019.2.0-6.24.1 |
saltSUSE:Linux Enterprise Module for Server Applications 15 SP1 |
before 2019.2.0-6.24.1 | 2019.2.0-6.24.1 |
saltUbuntu:Pro:14.04:LTS |
All versions, plus listed versions 0.16.0-10.16.4-20.17.1+dfsg-10.17.2-10.17.2-2 Show 9 moreShow less0.17.2-30.17.4-10.17.4-20.17.5-10.17.5+ds-10.17.5+ds-1ubuntu0.1~esm10.17.5+ds-1ubuntu0.1~esm20.17.5+ds-1ubuntu0.1~esm40.17.5+ds-1ubuntu0.1~esm5 |
None known |
saltUbuntu:16.04:LTS |
before 2015.8.8+ds-1ubuntu0.1, plus listed versions 2015.5.3+ds-12015.8.1+ds-22015.8.3+ds-12015.8.3+ds-22015.8.3+ds-32015.8.5+ds-12015.8.7+ds-12015.8.8+ds-1 |
2015.8.8+ds-1ubuntu0.1 |
saltUbuntu:18.04:LTS |
before 2017.7.4+dfsg1-1ubuntu18.04.2, plus listed versions 2016.11.5+ds-12016.11.8+dfsg1-12017.7.2+dfsg1-2ubuntu12017.7.3+dfsg1-12017.7.4+dfsg1-12017.7.4+dfsg1-1ubuntu18.04.1 |
2017.7.4+dfsg1-1ubuntu18.04.2 |
saltopenSUSE:Leap 15.1 |
before 2019.2.0-lp151.5.12.1 | 2019.2.0-lp151.5.12.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, aliases, references | OSV | |
| 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-2019-17361 is a critical vulnerability (CVSS 9.8) in Saltstack Salt, published January 17, 2020. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 15.2%, the 96th percentile. Fixed in salt 2019.2.3.
References
github.com/saltstack/salt/commits/master
docs.saltstack.com/en/latest/topics/releases/2019.2.3.html
lists.opensuse.org/opensuse-security-announce/2020-03/msg00026.html
debian.org/security/2020/dsa-4676
usn.ubuntu.com/4459-1
nvd.nist.gov/vuln/detail/CVE-2019-17361
Show 42 moreShow less
github.com/pypa/advisory-database/tree/main/vulns/salt/PYSEC-2020-177.yaml
github.com/advisories/GHSA-q53j-p6r2-g2v4
security.alpinelinux.org/vuln/CVE-2019-17361
github.com/saltstack/salt
suse.com/support/update/announcement/-2020-625/suse-ru-20200625-1
bugzilla.suse.com/1135656
bugzilla.suse.com/1153611
bugzilla.suse.com/1157465
bugzilla.suse.com/1158940
bugzilla.suse.com/1159118
bugzilla.suse.com/1160931
bugzilla.suse.com/1162327
bugzilla.suse.com/1162504
bugzilla.suse.com/1165425
suse.com/security/cve/CVE-2019-17361
suse.com/security/cve/CVE-2019-18897
suse.com/support/update/announcement/-2020-685/suse-ru-20200685-1
suse.com/support/update/announcement/2020/suse-su-20200538-1
bugzilla.suse.com/1163981
suse.com/support/update/announcement/2020/suse-su-20200540-1
suse.com/support/update/announcement/2020/suse-su-20200684-1
ubuntu.com/security/CVE-2019-17361
ubuntu.com/security/notices/USN-4459-1
cve.org/CVERecord?id=CVE-2019-17361
ubuntu.com/security/CVE-2018-15750
ubuntu.com/security/CVE-2018-15751
ubuntu.com/security/CVE-2020-11651
ubuntu.com/security/CVE-2020-11652
lists.opensuse.org/archives/list/[email protected]/thread/PR2PQ3GKS2PLFHVBID4QWOIOSORFRWDH
suse.com/security/cve/CVE-2016-9639
suse.com/security/cve/CVE-2017-12791
suse.com/security/cve/CVE-2017-14695
suse.com/security/cve/CVE-2017-14696
suse.com/security/cve/CVE-2018-15750
suse.com/security/cve/CVE-2018-15751
suse.com/security/cve/CVE-2020-11651
suse.com/security/cve/CVE-2020-25592
suse.com/security/cve/CVE-2020-28243
suse.com/security/cve/CVE-2021-21996
suse.com/security/cve/CVE-2021-25281
suse.com/security/cve/CVE-2021-25315
suse.com/security/cve/CVE-2021-31607
Left out here: 212 versions. The JSON record has them.