CVE Vulnerabilities

CVE-2015-3156

Improper Link Resolution Before File Access ('Link Following')

Published: Aug 11, 2017 | Modified: Apr 20, 2025
CVSS 3.x
5.5
MEDIUM
Source:
NVD
CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
CVSS 2.x
2.1 LOW
AV:L/AC:L/Au:N/C:N/I:P/A:N
RedHat/V2
3.8 LOW
AV:A/AC:M/Au:S/C:P/I:N/A:P
RedHat/V3
Ubuntu
MEDIUM
root.io logo minimus.io logo echo.ai logo

The _write_config function in trove/guestagent/datastore/experimental/mongodb/service.py, reset_configuration function in trove/guestagent/datastore/experimental/postgresql/service/config.py, write_config function in trove/guestagent/datastore/experimental/redis/service.py, _write_mycnf function in trove/guestagent/datastore/mysql/service.py, InnoBackupEx::_run_prepare function in trove/guestagent/strategies/restore/mysql_impl.py, InnoBackupEx::cmd function in trove/guestagent/strategies/backup/mysql_impl.py, MySQLDump::cmd in trove/guestagent/strategies/backup/mysql_impl.py, InnoBackupExIncremental::cmd function in trove/guestagent/strategies/backup/mysql_impl.py, _get_actual_db_status function in trove/guestagent/datastore/experimental/cassandra/system.py and trove/guestagent/datastore/experimental/cassandra/service.py, and multiple class CbBackup methods in trove/guestagent/strategies/backup/experimental/couchbase_impl.py in Openstack DBaaS (aka Trove) as packaged in Openstack before 2015.1.0 (aka Kilo) allows local users to write to configuration files via a symlink attack on a temporary file.

Weakness

The product attempts to access a file based on the filename, but it does not properly prevent that filename from identifying a link or shortcut that resolves to an unintended resource.

Affected Software

NameVendorStart VersionEnd Version
TroveOpenstack*2014.2.4 (including)
Openstack-troveUbuntuartful*
Openstack-troveUbuntubionic*
Openstack-troveUbuntucosmic*
Openstack-troveUbuntudisco*
Openstack-troveUbuntueoan*
Openstack-troveUbuntuesm-apps/bionic*
Openstack-troveUbuntuesm-apps/focal*
Openstack-troveUbuntuesm-apps/jammy*
Openstack-troveUbuntuesm-apps/xenial*
Openstack-troveUbuntufocal*
Openstack-troveUbuntugroovy*
Openstack-troveUbuntuhirsute*
Openstack-troveUbuntuimpish*
Openstack-troveUbuntujammy*
Openstack-troveUbuntukinetic*
Openstack-troveUbuntulunar*
Openstack-troveUbuntumantic*
Openstack-troveUbuntutrusty*
Openstack-troveUbuntuutopic*
Openstack-troveUbuntuvivid*
Openstack-troveUbuntuwily*
Openstack-troveUbuntuxenial*
Openstack-troveUbuntuyakkety*
Openstack-troveUbuntuzesty*

Potential Mitigations

  • Follow the principle of least privilege when assigning access rights to entities in a software system.
  • Denying access to a file can prevent an attacker from replacing that file with a link to a sensitive file. Ensure good compartmentalization in the system to provide protected areas that can be trusted.

References