CVE-2016-10517
networking.c in Redis before 3.2.7 allows "Cross Protocol Scripting" because it lacks a check for...
networking.c in Redis before 3.2.7 allows "Cross Protocol Scripting" because it lacks a check for POST and Host: strings, which are not valid in the Redis protocol (but commonly occur when an attack triggers an HTTP request to the Redis TCP port).
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- Required
What an attacker can affect
- Confidentiality
- High
- Integrity
- None
- Availability
- None
Exploit likelihood
What each source reports
NVD Score used
7.4
networking.c in Redis before 3.2.7 allows "Cross Protocol Scripting" because it lacks a check for POST and Host: strings, which are not valid in the Redis protocol (but commonly occur when an attack triggers an HTTP request to the Redis TCP port).
- Record
CVE-2016-10517- CVSS 3.0
- 7.4 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:N/A:N - CVSS 2.0
- 4.3 Medium
AV:N/AC:M/Au:N/C:P/I:N/A:N - Weakness
- CWE-254
- Updated
- 2026-11-02
CVE List No score
networking.c in Redis before 3.2.7 allows "Cross Protocol Scripting" because it lacks a check for POST and Host: strings, which are not valid in the Redis protocol (but commonly occur when an attack triggers an HTTP request to the Redis TCP port).
- Record
CVE-2016-10517- Updated
- 2026-11-02
EUVDEUVD-2016-1698 No score
networking.c in Redis before 3.2.7 allows "Cross Protocol Scripting" because it lacks a check for POST and Host: strings, which are not valid in the Redis protocol (but commonly occur when an attack triggers an HTTP request to the Redis TCP port).
- Record
EUVD-2016-1698- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-r965-fhrj-6v64
7.4
networking.c in Redis before 3.2.7 allows "Cross Protocol Scripting" because it lacks a check for...
networking.c in Redis before 3.2.7 allows "Cross Protocol Scripting" because it lacks a check for POST and Host: strings, which are not valid in the Redis protocol (but commonly occur when an attack triggers an HTTP request to the Redis TCP port).
- Record
GHSA-r965-fhrj-6v64- CVSS 3.0
- 7.4 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:N/A:N - Updated
- 2026-11-02
OSV
7.4
networking.c in Redis before 3.2.7 allows "Cross Protocol Scripting" because it lacks a check for POST and Host: strings, which are not valid in the Redis protocol (but commonly occur when an attack triggers an HTTP request to the Redis TCP port).
- Record
CVE-2016-10517- CVSS 3.0
- 7.4 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:N/A:N - Updated
- 2026-11-02
OSVDEBIAN-CVE-2016-10517
7.4
networking.c in Redis before 3.2.7 allows "Cross Protocol Scripting" because it lacks a check for POST and Host: strings, which are not valid in the Redis protocol (but commonly occur when an attack triggers an HTTP request to the Redis TCP port).
- Record
DEBIAN-CVE-2016-10517- CVSS 3.0
- 7.4 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:N/A:N - Updated
- 2026-11-02
Show 5 moreShow less
OSVUBUNTU-CVE-2016-10517
7.4
networking.c in Redis before 3.2.7 allows "Cross Protocol Scripting" because it lacks a check for POST and Host: strings, which are not valid in the Redis protocol (but commonly occur when an attack triggers an HTTP request to the Redis TCP port).
- Record
UBUNTU-CVE-2016-10517- CVSS 3.0
- 7.4 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:N/A:N - Updated
- 2026-11-02
OSVopenSUSE-SU-2017:2984-1 No score
Security update for redis
This update for redis to version 4.0.2 fixes the following issues:
- CVE-2016-8339: CONFIG SET client-output-buffer-limit Code Execution Vulnerability (boo#1002351)
The following upstream changes are included:
- SLOWLOG now logs the offending client name and address
- The modules native data types RDB format changed.
- The AOF check utility is now able to deal with RDB preambles.
- GEORADIUS_RO and GEORADIUSBYMEMBER_RO variants, not supporting the STORE option, were added in order to allow read-only scaling of such queries.
- HSET is now variadic, and HMSET is considered deprecated
- GEORADIUS huge radius (>= ~6000 km) corner cases fixed
- HyperLogLog commands no longer crash on certain input (non HLL) strings.
- Fixed SLAVEOF inside MULTI/EXEC blocks.
- TCP binding bug fixed when only certain addresses were available for a given por
- MIGRATE could crash the server after a socket error
- Record
openSUSE-SU-2017:2984-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2017:2994-1 No score
Security update for redis
This update for redis to version 4.0.2 fixes the following issues:
- CVE-2016-8339: CONFIG SET client-output-buffer-limit Code Execution Vulnerability (boo#1002351)
The following upstream changes are included:
- SLOWLOG now logs the offending client name and address
- The modules native data types RDB format changed.
- The AOF check utility is now able to deal with RDB preambles.
- GEORADIUS_RO and GEORADIUSBYMEMBER_RO variants, not supporting the STORE option, were added in order to allow read-only scaling of such queries.
- HSET is now variadic, and HMSET is considered deprecated
- GEORADIUS huge radius (>= ~6000 km) corner cases fixed
- HyperLogLog commands no longer crash on certain input (non HLL) strings.
- Fixed SLAVEOF inside MULTI/EXEC blocks.
- TCP binding bug fixed when only certain addresses were available for a given por
- MIGRATE could crash the server after a socket error
- Record
openSUSE-SU-2017:2994-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:11299-1 No score
redis-6.2.5-1.2 on GA media
These are all security issues fixed in the redis-6.2.5-1.2 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:11299-1- Updated
- 2026-11-02
OSVSUSE-OU-2020:3291-1 No score
Optional update for python-redis and redis
This optional update for python-redis and redis provides the following fixes
python-redis:
-
Update to version to 3.4.1 (jsc#ECO-2417)
- Move the username argument in the Redis and Connection classes to the end of the argument list. This helps those poor souls that specify all their connection options as non-keyword arguments.
- Prior to ACL support, redis-py ignored the username component of Connection URLs. With ACL support, usernames are no longer ignored and are used to authenticate against an ACL rule. Some cloud vendors with managed Redis instances (like Heroku) provide connection URLs with a username component pre-ACL that is not intended to be used. Sending that username to Redis servers < 6.0.0 results in an error. Attempt to detect this condition and retry the AUTH command with only the password such that authentication continues to work for these users.
- Removed the eq hooks to Redis and ConnectionPool that were added in 3.4.0. This ended up being a bad idea as two separate connection pools be considered equal yet manage a completely separate set of connections.
- Allow empty pipelines to be executed if there are WATCHed keys. This is a convenient way to test if any of the watched keys changed without actually running any other commands.
- Removed support for end of life Python 3.4.
- Added support for all ACL commands in Redis 6.
- Pipeline instances now always evaluate to True. Prior to this change, pipeline instances relied on len for boolean evaluation which meant that pipelines with no commands on the stack would be considered False.
- Client instances and Connection pools now support a 'client_name' argument. If supplied, all connections created will call CLIENT SETNAME as soon as the connection is opened.
- Added the 'ssl_check_hostname' argument to specify whether SSL connections should require the server hostname to match the hostname specified in the SSL cert. By default 'ssl_check_hostname' is False for backwards compatibility.
- Added support for the TYPE argument to SCAN.
- Better thread and fork safety in ConnectionPool and BlockingConnectionPool. Added better locking to synchronize critical sections rather than relying on CPython-specific implementation details relating to atomic operations. Adjusted how the pools identify and deal with a fork. Added a ChildDeadlockedError exception that is raised by child processes in the very unlikely chance that a deadlock is encountered.
- Further fix for the SSLError -> TimeoutError mapping to work on obscure releases of Python 2.7.
- Fixed a potential error handling bug for the SSLError -> TimeoutError mapping introduced in 3.3.9.
- Mapped Python 2.7 SSLError to TimeoutError where appropriate. Timeouts should now consistently raise TimeoutErrors on Python 2.7 for both unsecured and secured connections.
- Fixed MONITOR parsing to properly parse IPv6 client addresses
- Fixed a regression introduced in 3.3.0
- Resolve a race condition with the PubSubWorkerThread.
- Response callbacks are now case insensitive.
- Added support for hiredis-py 1.0.0 encoding error support.
- Add READONLY and READWRITE commands.
- Added extensive health checks that keep the connections lively.
- Many more changes, see upstream changelog.
- Add missing build dependency setuptools
- Fix SentinelConnectionPool to work in multiprocess/forked environments
-
Update to 3.2.0 (bsc#1131555)
- Added support for
select.pollto test whether data can be read on a socket. This should allow for significantly more connections to be used with pubsub. - Attempt to guarentee that the ConnectionPool hands out healthy connections. Healthy connections are those that have an established socket connection to the Redis server, are ready to accept a command and have no data available to read.
- Use the socket.IPPROTO_TCP…
- Added support for
- Record
SUSE-OU-2020:3291-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
redisDebian:12 |
before 3:3.2.7-1 | 3:3.2.7-1 |
redisDebian:13 |
before 3:3.2.7-1 | 3:3.2.7-1 |
redisDebian:14 |
before 3:3.2.7-1 | 3:3.2.7-1 |
redisDebian:7 |
before 2:2.4.14-1+deb7u2, plus listed versions 2:2.4.14-12:2.4.14-1+deb7u1 |
2:2.4.14-1+deb7u2 |
redisSUSE:Linux Enterprise Module for Server Applications 15 SP2 |
before 6.0.8-1.3.1 | 6.0.8-1.3.1 |
redisUbuntu:14.04:LTS |
before 2:2.8.4-2ubuntu0.2, plus listed versions 2:2.6.13-12:2.6.16-32:2.8.0-12:2.8.2-12:2.8.4-2 |
2:2.8.4-2ubuntu0.2 |
redisUbuntu:16.04:LTS |
before 2:3.0.6-1ubuntu0.2, plus listed versions 2:3.0.3-32:3.0.5-12:3.0.5-22:3.0.5-32:3.0.5-42:3.0.6-1 |
2:3.0.6-1ubuntu0.2 |
redisSUSE:Package Hub 12 |
before 4.0.2-9.1 | 4.0.2-9.1 |
redisopenSUSE:Tumbleweed |
before 6.2.5-1.2 | 6.2.5-1.2 |
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-10517 is a high vulnerability (CVSS 7.4) in Redislabs Redis, published October 24, 2017. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 2.14%, the 82nd percentile. Fixed in redis 3:3.2.7-1.
References
reddit.com/r/redis/comments/5r8wxn/redis_327_is_out_important_security_fixes_inside
raw.githubusercontent.com/antirez/redis/3.2/00-RELEASENOTES
securityfocus.com/bid/101572
github.com/antirez/redis/commit/874804da0c014a7d704b3d285aa500098a931f50
nvd.nist.gov/vuln/detail/CVE-2016-10517
github.com/advisories/GHSA-r965-fhrj-6v64
Show 25 moreShow less
security-tracker.debian.org/tracker/CVE-2016-10517
suse.com/support/update/announcement/-2020-3291/suse-ou-20203291-1
bugzilla.suse.com/1002351
bugzilla.suse.com/1047218
bugzilla.suse.com/1061967
bugzilla.suse.com/1064980
bugzilla.suse.com/1097430
bugzilla.suse.com/1131555
bugzilla.suse.com/798455
bugzilla.suse.com/835815
bugzilla.suse.com/991250
suse.com/security/cve/CVE-2013-7458
suse.com/security/cve/CVE-2015-8080
suse.com/security/cve/CVE-2016-10517
suse.com/security/cve/CVE-2016-8339
suse.com/security/cve/CVE-2017-15047
suse.com/security/cve/CVE-2018-11218
suse.com/security/cve/CVE-2018-11219
ubuntu.com/security/CVE-2016-10517
cve.org/CVERecord?id=CVE-2016-10517
suse.com/security/cve/CVE-2021-21309
suse.com/security/cve/CVE-2021-29477
suse.com/security/cve/CVE-2021-29478
suse.com/security/cve/CVE-2021-32625
suse.com/security/cve/CVE-2021-32761
Left out here: the rest of 1 source description. The JSON record has them.