{"id":"MAL-2026-18378","kind":"package","aliases":["MAL-2026-18378"],"related":[],"title":"Malicious code in poc-revshell (PyPI)","description":"---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (08edc162927c80cde9e467244a435780f65ca95823e97ec73534faf34233ac9a)\npoc-revshell 0.1.0 ships a reverse-shell backdoor that fires both at install time and at import time. setup.py registers a custom `install` cmdclass (PostInstall) that starts a daemon thread executing a routine which opens a TCP socket to 127.0.0.1:4444, dup2s the socket file descriptor onto stdin/stdout/stderr, and execs `/bin/sh -i` (or `cmd.exe` on Windows); this runs automatically during `pip install`. The package's `__init__.py` contains the same thread-launch at module top level, so every `import poc_revshell` repeats the handoff. Any local listener on port 4444 at the moment of install or import receives a full interactive shell running under the installing user's identity. The destination is hardcoded loopback, which confines the attack to a co-resident attacker on the installer's host, but the install-time and import-time network-to-shell dataflow is a backdoor by structure, matching the package's self-description as a proof-of-concept that triggers a reverse shell on pip install.","summary":null,"severity":"critical","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"poc-revshell","fixed":[],"affected":"= 0.1.0","ecosystem":"pypi"}],"ecosystems":["pypi"],"tags":["malicious","package"],"not_affected_if":[],"how_to_check":null,"fix":null,"status":"open","published_at":"2026-10-29T14:59:05+00:00","first_seen_at":"2026-10-29T15:54:55+00:00","triaged_at":"2026-10-29T15:55:47+00:00","updated_at":"2026-10-29T16:02:26+00:00","category":"package","confidence":null,"triage":null,"analyst_status":null,"analyst_note":null,"search":"'-18378':10A,13A '-2026':9A,12A '/bin/sh':85C '0.1.0':36C '08edc162927c80cde9e467244a435780f65ca95823e97ec73534faf34233ac9a':32C '127.0.0.1':74C '4444':75C,125C 'amazon':30C 'amazon-inspector':29C 'attack':153C,159C 'automat':93C 'backdoor':42C,181C 'cmd.exe':88C 'cmdclass':58C 'co':157C 'co-resid':156C 'code':2A 'concept':196C 'confin':151C 'contain':102C 'custom':56C 'daemon':63C 'dataflow':178C 'descript':190C 'descriptor':80C 'destin':146C 'detail':21C 'dup2s':76C 'edit':24C 'everi':113C 'exec':84C 'execut':65C 'file':79C 'fire':44C 'full':135C 'handoff':119C 'hardcod':148C 'host':164C 'ident':144C 'import':51C,114C,132C,172C 'import-tim':171C 'init':100C 'inspector':31C 'instal':47C,57C,96C,130C,141C,162C,168C,204C 'install-tim':167C 'interact':136C 'launch':107C 'level':111C 'line':27C 'listen':122C 'local':121C 'loopback':149C 'mal':8A,11A 'malici':1A,17B 'match':184C 'modul':109C 'moment':128C 'network':175C 'network-to-shel':174C 'onto':81C 'open':69C 'packag':18B,98C,186C 'per':19C 'pip':95C,203C 'poc':5A,15A,34C,115C 'poc-revshel':4A,33C 'poc-revshell':14A 'port':124C 'postinstal':59C 'proof':194C 'proof-of-concept':193C 'py':101C 'pypi':7A 'receiv':133C 'regist':54C 'repeat':117C 'resid':158C 'revers':40C,200C 'reverse-shel':39C 'revshel':6A,35C,116C 'revshell':16A 'routin':67C 'run':92C,138C 'self':189C 'self-descript':188C 'setup.py':53C 'shell':41C,137C,177C,201C 'ship':37C 'socket':72C,78C 'sourc':20C,28C 'start':61C 'stdin/stdout/stderr':82C 'structur':183C 'tcp':71C 'thread':64C,106C 'thread-launch':105C 'time':48C,52C,169C,173C 'top':110C 'trigger':198C 'user':142C 'window':90C","nicknames":[],"mitigations":[],"who_affected":null,"tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":null,"audience":null,"plain_action":null,"first_public_at":"2026-10-29T14:59:05+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"osv-malicious","external_id":"MAL-2026-18378","url":"https://osv.dev/vulnerability/MAL-2026-18378","severity":"critical","published_at":"2026-10-29T14:59:05+00:00","modified_at":"2026-10-29T15:30:07+00:00","first_seen_at":"2026-10-29T15:54:55+00:00","fetched_at":"2026-10-29T15:54:55+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}