CVE-2016-3953
web2py remote code execution via hardcoded encryption key in session.connect function
CVE-2016-3953 is a critical vulnerability (CVSS 9.8) in Web2py, published February 6, 2018. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 3.34%, the 88th percentile. Fixed in web2py 2.14.2.
The sample web application in web2py before 2.14.2 might allow remote attackers to execute arbitrary code via vectors involving use of a hardcoded encryption key when calling the session.connect function.
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
The sample web application in web2py before 2.14.2 might allow remote attackers to execute arbitrary code via vectors involving use of a hardcoded encryption key when calling the session.connect function.
- Record
CVE-2016-3953- CVSS 3.0
- 9.8 Critical
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - CVSS 2.0
- 7.5 High
AV:N/AC:L/Au:N/C:P/I:P/A:P - Weakness
- CWE-798
- Updated
- 2026-11-02
CVE List No score
The sample web application in web2py before 2.14.2 might allow remote attackers to execute arbitrary code via vectors involving use of a hardcoded encryption key when calling the session.connect function.
- Record
CVE-2016-3953- Updated
- 2026-11-02
EUVDEUVD-2022-4863 No score
The sample web application in web2py before 2.14.2 might allow remote attackers to execute arbitrary code via vectors involving use of a hardcoded encryption key when calling the session.connect function.
- Record
EUVD-2022-4863- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-q2rq-qgcf-m22w
9.8
web2py remote code execution via hardcoded encryption key in session.connect function
The sample web application in web2py before 2.14.2 might allow remote attackers to execute arbitrary code via vectors involving use of a hardcoded encryption key when calling the session.connect function.
- Record
GHSA-q2rq-qgcf-m22w- 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-798
- Updated
- 2026-11-02
OSV
9.8
The sample web application in web2py before 2.14.2 might allow remote attackers to execute arbitrary code via vectors involving use of a hardcoded encryption key when calling the session.connect function.
- Record
CVE-2016-3953- CVSS 3.0
- 9.8 Critical
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVGHSA-q2rq-qgcf-m22w
9.8
web2py remote code execution via hardcoded encryption key in session.connect function
The sample web application in web2py before 2.14.2 might allow remote attackers to execute arbitrary code via vectors involving use of a hardcoded encryption key when calling the session.connect function.
- Record
GHSA-q2rq-qgcf-m22w- 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-798
- Updated
- 2026-11-02
OSVPYSEC-2026-570
9.8
web2py remote code execution via hardcoded encryption key in session.connect function
The sample web application in web2py before 2.14.2 might allow remote attackers to execute arbitrary code via vectors involving use of a hardcoded encryption key when calling the session.connect function.
- Record
PYSEC-2026-570- 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
OSVUBUNTU-CVE-2016-3953
9.8
The sample web application in web2py before 2.14.2 might allow remote attackers to execute arbitrary code via vectors involving use of a hardcoded encryption key when calling the session.connect function.
- Record
UBUNTU-CVE-2016-3953- CVSS 3.0
- 9.8 Critical
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVUSN-4030-1 No score
web2py vulnerabilities
It was discovered that web2py does not properly check denied hosts before verifying passwords. An attacker could possibly use this issue to perform brute-force attacks. (CVE-2016-10321)
It was discovered that web2py allows remote attackers to obtain environment variable values. An attacker could possibly use this issue to gain administrative access. (CVE-2016-3952)
It was discovered that web2py uses a hardcoded encryption key. An attacker could possibly use this issue to execute arbitrary code. (CVE-2016-3953, CVE-2016-3954, CVE-2016-3957)
- Record
USN-4030-1- Updated
- 2026-11-02
Affected products
Affected packages
History
| When | Changed | Sources |
|---|---|---|
| 2026-11-03 | aliases | EUVD |
| 2026-11-02 | created | CVE List, GitHub Advisories, NVD, OSV |
References
devco.re/blog/2017/01/03/web2py-unserialize-code-execution-CVE-2016-3957
github.com/web2py/web2py/blob/R-2.14.1/applications/examples/models/session.py
usn.ubuntu.com/4030-1
nvd.nist.gov/vuln/detail/CVE-2016-3953
github.com/web2py/web2py/issues/1205
github.com/web2py/web2py/commit/9706d125b42481178d2b423de245f5d2faadbf40
Show 10 moreShow less
github.com/advisories/GHSA-q2rq-qgcf-m22w
github.com/web2py/web2py
pypi.org/project/web2py
ubuntu.com/security/CVE-2016-3953
ubuntu.com/security/notices/USN-4030-1
cve.org/CVERecord?id=CVE-2016-3953
ubuntu.com/security/CVE-2016-3952
ubuntu.com/security/CVE-2016-3954
ubuntu.com/security/CVE-2016-3957
ubuntu.com/security/CVE-2016-10321