
نص برمجي بلغة Python لإثبات المفهوم (PoC) لثغرة CVE-2026-11118 يوضح هجوم حجب الخدمة الموزع (DDoS) عبر Rapid Reset في HTTP/2 باستخدام استنزاف الموارد عبر RST_STREAM؛ يتضمن محاكي خادم هش وعميل استغلال.
# http2_server_sim.py - Simple HTTP/2 server that processes reset streams
import socket, ssl, h2.connection, h2.events
def handle():
sock = socket.socket()
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.bind(('0.0.0.0', 8443))
sock.listen(5)
conn, addr = sock.accept()
ctx = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
ctx.load_cert_chain('cert.pem', 'key.pem')
tls = ctx.wrap_socket(conn, server_side=True)
h2conn = h2.connection.H2Connection(client_side=False)
h2conn.initiate_connection()
tls.sendall(h2conn.data_to_send())
while True:
data = tls.recv(65535)
events = h2conn.receive_data(data)
for event in events:
if isinstance(event, h2.events.RequestReceived):
# Start processing, but quickly reset if too many
h2conn.reset_stream(event.stream_id)
print("Reset stream")
tls.sendall(h2conn.data_to_send())
# (Run in a thread)
لا يقيّد خادم HTTP/2 معدل عمليات إعادة تعيين التدفقات (إطارات RST_STREAM). يمكن للمهاجم فتح عدد كبير من التدفقات وإعادة تعيينها على الفور، مما يسبب استهلاكًا مفرطًا لموارد الخادم دون الحاجة إلى إكمال أي طلبات، مما يؤدي إلى حجب الخدمة.
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes
python http2_server_sim.py
python exploit_http2_rapid_reset.py
يصبح الخادم غير مستجيب بسبب معدل إعادة التعيين المرتفع.