Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Primary rating from NVD · only source for this CVE.
CVSS VectorNVD
Lifecycle Timeline
8DescriptionCVE.org
A flaw has been found in liangliangyy DjangoBlog up to 2.1.0.0. The affected element is the function form_valid of the file oauth/views.py. This manipulation of the argument oauthid causes improper authorization. The attack may be initiated remotely. The exploit has been published and may be used. The vendor was contacted early about this disclosure but did not respond in any way.
AnalysisAI
Improper authorization in liangliangyy DjangoBlog versions up to 2.1.0.0 allows authenticated remote attackers to manipulate the oauthid parameter in the oauth/views.py form_valid function, bypassing access controls to perform unauthorized operations. The vulnerability has confirmed public exploit code available and affects all instances where OAuth functionality is enabled. This is a privilege escalation or horizontal access control bypass vulnerability accessible to any authenticated user.
Technical ContextAI
The vulnerability resides in the OAuth integration layer of DjangoBlog, specifically in the form_valid method of oauth/views.py where user-supplied oauthid parameters are processed without proper authorization checks. The root cause is classified as CWE-285 (Improper Authorization), indicating the application fails to verify whether the authenticated user has legitimate rights to perform operations on the specified oauthid before processing the request. This is a classic insecure direct object reference (IDOR) pattern in the OAuth binding workflow, where an attacker with valid authentication credentials can manipulate resource identifiers to access or modify OAuth associations belonging to other users. The CPE indicates the vulnerability affects the entire DjangoBlog application package across all affected versions without version-specific boundaries noted.
RemediationAI
Immediate action required: upgrade to a version later than 2.1.0.0 if available from the vendor, or apply the authorization validation patch directly to the oauth/views.py form_valid function. The fix must verify that the authenticated user owns or has explicit authorization to modify the oauthid being processed before executing any state-changing operations. Specific technical remediation: add server-side authorization checks in form_valid to confirm the authenticated user (request.user) is the owner of the oauthid resource being accessed, preventing cross-user OAuth binding manipulation. If vendor patches are unavailable due to non-response, consider implementing application-level Web Application Firewall (WAF) rules to detect and block repeated oauthid parameter manipulation attempts from individual users, or temporarily disable OAuth binding functionality in the application settings until a fix is verified. Monitor authentication logs for users accessing oauthid parameters outside their own account context. Contact the vendor directly or review https://github.com/3em0/cve_repo/blob/main/DjangoBlog/Vuln-6-OAuth-Email-Binding-IDOR.md for technical details on the vulnerable code path.
More in Djangoblog
View allDjangoBlog up to version 2.1.0.0 contains an authentication bypass vulnerability in the blog/views.py Clean Endpoint tha
Missing authentication in DjangoBlog 2.1.0.0 and prior allows remote unauthenticated attackers to inject GPS tracking da
Hard-coded Amap API key exposure in DjangoBlog allows remote attackers to abuse geolocation services without authenticat
Cross-site Scripting (XSS) - Stored in GitHub repository liangliangyy/djangoblog prior to master. Rated medium severity
DjangoBlog up to version 2.1.0.0 contains hard-coded credentials in djangoblog/settings.py that can be exploited remotel
Liangliangyy DjangoBlog up to version 2.1.0.0 contains hard-coded credentials in the SECRET_KEY parameter within djangob
Command injection in DjangoBlog WeChat Bot Interface allows authenticated remote attackers to execute arbitrary system c
DjangoBlog versions up to 2.1.0.0 use a hard-coded cryptographic key in djangoblog/settings.py when the SECRET_KEY argum
Same weakness CWE-285 – Improper Authorization
View allSame technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-23782
GHSA-q2v9-jfqm-jfw4