- شناسه CVE-2026-3888 :CVE
- CWE-268 :CWE
- yes :Advisory
- منتشر شده: مارس 17, 2026
- به روز شده: مارس 18, 2026
- امتیاز: 7.8
- نوع حمله: Race Condition
- اثر گذاری: Local Privilege Escalation (LPE)
- حوزه: سیستمعاملها و اجزای کلیدی آن
- برند: Canonical
- محصول: snapd
- وضعیتPublished :CVE
- Yes :POC
- وضعیت آسیب پذیری: patch شده
چکیده
آسیبپذیری افزایش سطح دسترسی لوکال در سرویس snapd در سیستمعاملهای مبتنی بر اوبونتو (Ubuntu) میتواند به کاربران لوکال با سطح دسترسی محدود اجازه دهد در شرایط خاص به دسترسی root دست پیدا کنند. این ضعف امنیتی ناشی از نحوه مدیریت برخی دایرکتوریهای موقت سیستم است و در صورت اکسپلویت موفق، برای مهاجم امکان دسترسی کامل به منابع، دادهها و قابلیتهای مدیریتی سیستم را فراهم میکند.
توضیحات
آسیبپذیری CVE-2026-3888 یک ضعف افزایش سطح دسترسی لوکال در سرویس snapd است که تحت شناسه CWE-268 طبقهبندی میشود. این شناسه به زنجیرهسازی افزایش سطح دسترسی (Privilege Chaining) اشاره دارد؛ وضعیتی که در آن مهاجم با سوءاستفاده از چند عملکرد یا مکانیزم مجاز سیستم، در نهایت به سطح دسترسی فراتر از مجوزهای اولیه خود دست پیدا میکند.
بر اساس گزارش Qualys، ریشه این آسیبپذیری به نحوه تعامل میان snap-confine و systemd-tmpfiles بازمیگردد. snap-confine یکی از بخشهای اصلی snapd است که وظیفه ایجاد و آمادهسازی محیط اجرای ایزوله (Sandbox) برای برنامههای Snap را بر عهده دارد. در مقابل، systemd-tmpfiles سرویسی در لینوکس است که برای ایجاد، مدیریت و پاکسازی خودکار فایلها و دایرکتوریهای موقت مورد استفاده قرار میگیرد.
در سیستمهای آسیبپذیر، اگر سرویس systemd-tmpfiles برای پاکسازی خودکار فایلها و دایرکتوریهای موقت فعال باشد، ممکن است پس از گذشت مدت زمان مشخصی برخی دایرکتوریهای خصوصی مورد استفاده Snap حذف شوند. در این شرایط، مهاجم لوکال میتواند دایرکتوری حذفشده را مجدداً ایجاد کرده و کنترل آن را در اختیار بگیرد. در نتیجه، هنگام اجرای بعدی snap-confine، برخی عملیات با دسترسی root روی مسیرهایی انجام میشوند که تحت کنترل مهاجم قرار دارند و همین موضوع زمینه افزایش سطح دسترسی را فراهم میکند.
سوءاستفاده از این آسیبپذیری از راه دور امکانپذیر نیست و مهاجم باید به سیستم هدف دسترسی لوکال داشته باشد. با این حال، مطابق بردار CVSS، برای آغاز حمله تنها یک حساب کاربری با سطح دسترسی پایین (Low Privileges) کافی است و تعامل کاربر (User Interaction) نیز موردنیاز نیست. در چنین شرایطی، مهاجم میتواند پس از ورود به سیستم با یک حساب عادی، منتظر اجرای فرآیند پاکسازی خودکار توسط systemd-tmpfiles بماند و سپس از شرایط ایجادشده برای دستیابی به سطح دسترسی بالاتر سوءاستفاده کند.
بر اساس توضیحات منتشرشده توسط Canonical و Qualys، مهاجم برای دستیابی به یک Root Shell کامل باید منتظر بماند تا سرویس systemd-tmpfiles دایرکتوری را در فرآیند پاکسازی خودکار حذف کند. این پاکسازی در Ubuntu 25.10 پس از 10 روز و درUbuntu 24.04 پس از 30 روز عدم استفاده یا عدم تغییر در دایرکتوری انجام میشود. پس از حذف این مسیر، مهاجم میتواند آن را مجدداً ایجاد کرده و کنترل آن را در اختیار بگیرد. در ادامه، زمانی که snapd یا snap-confine برخی عملیات را با دسترسی root روی این مسیرها انجام میدهند، این عملیات روی مسیرهای تحت کنترل مهاجم اجرا میشود و در نهایت امکان افزایش سطح دسترسی و دستیابی به یک Root Shell را فراهم میکند.
همچنین Qualys جزئیات فنی این آسیبپذیری و نحوه اکسپلویت از آن را بهصورت عمومی منتشر کرده است. بر اساس این تحلیل، افزایش سطح دسترسی حاصل از تعامل دو مکانیزم مستقل و در ظاهر امن سیستم است که در شرایط خاص میتواند منجر به دستیابی مهاجم به دسترسی root شود.
از نظر تأثیرات امنیتی، این آسیبپذیری هر سه اصل امنیت اطلاعات را تحت تأثیر قرار میدهد. از منظر محرمانگی (Confidentiality)، مهاجم پس از دستیابی به دسترسی root قادر به مشاهده تمامی فایلها، اطلاعات کاربران، کلیدهای رمزنگاری، دادههای حساس و تنظیمات امنیتی سیستم خواهد بود. از منظر یکپارچگی (Integrity)، امکان تغییر، حذف یا دستکاری هرگونه فایل سیستمی و دادههای سازمانی فراهم میشود. همچنین از منظر دسترسپذیری (Availability)، مهاجم میتواند سرویسها را متوقف کرده، فایلهای حیاتی را حذف نموده یا باعث از کار افتادن کامل سیستم شود.
بر اساس بردار CVSS، دامنه اثر (Scope) این آسیبپذیری تغییر میکند؛ به این معنا که مهاجم میتواند از سطح دسترسی محدود اولیه خود عبور کرده و به سطح دسترسی root در سیستم دست یابد. به همین دلیل، تأثیرات این آسیبپذیری در هر سه مؤلفه محرمانگی، یکپارچگی و دسترسپذیری در سطح بالا (High) ارزیابی شده است.
Canonical با اعمال اصلاحات امنیتی در پیکربندی systemd-tmpfiles و ایمنسازی (Hardening) نحوه مدیریت دایرکتوریهای موقت Snap، این آسیبپذیری را برطرف کرده و نسخههای بهروزرسانیشده snapd را برای نسخههای مختلف اوبونتو منتشر کرده است. بر اساس اعلام Canonical، نصبهای پیشفرض Ubuntu 24.04 LTS و Ubuntu 25.10 بیشترین تأثیر را از این آسیبپذیری میپذیرند؛ با این حال، همین اصلاحات امنیتی برای Ubuntu 16.04 LTS، Ubuntu 18.04 LTS، Ubuntu 20.04 LTS و Ubuntu 22.04 LTS نیز اعمال شده است، زیرا برخی پیکربندیهای غیراستاندارد در این نسخهها میتوانند شرایط لازم برای سوءاستفاده از این ضعف را فراهم کنند.
CVSS
| Score | Severity | Version | Vector String |
| 7.8 | HIGH | 3.1 | CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H |

شکل 1: تفسیر جدول CVSS
لیست محصولات آسیب پذیر
| Versions | Platforms | Product |
| before 2.61.4ubuntu0.16.04.1+esm2 | Linux | Ubuntu 16.04 LTS (snapd) |
| before 2.61.4ubuntu0.18.04.1+esm2 | Linux | Ubuntu 18.04 LTS (snapd) |
| before 2.67.1+20.04ubuntu1~esm1 | Linux | Ubuntu 20.04 LTS (snapd) |
| before 2.73+ubuntu22.04.1 | Linux | Ubuntu 22.04 LTS (snapd) |
| before 2.73+ubuntu24.04.2 | Linux | Ubuntu 24.04 LTS (snapd) |
| affected from 0 before 2.75.1 | Linux | snapd (Upstream) |
لیست محصولات بروز شده
| Versions | Platforms | Product |
| 2.61.4ubuntu0.16.04.1+esm2 | Linux | Ubuntu 16.04 LTS (snapd) |
| 2.61.4ubuntu0.18.04.1+esm2 | Linux | Ubuntu 18.04 LTS (snapd) |
| 2.67.1+20.04ubuntu1~esm1 | Linux | Ubuntu 20.04 LTS (snapd) |
| 2.73+ubuntu22.04.1 | Linux | Ubuntu 22.04 LTS (snapd) |
| 2.73+ubuntu24.04.2 | Linux | Ubuntu 24.04 LTS (snapd) |
| 2.73+ubuntu25.10.1 | Linux | Ubuntu 25.10 (snapd) |
| 2.75.1 | Linux | snapd (Upstream) |
استفاده محصول در ایران
در این جدول، تعداد صفحات ایندکسشده در گوگل با دامنه .ir که Ubuntu snapdرا ذکر کرده اند، ثبت شده است. این داده صرفاً برای برآورد تقریبی حضور محصولات در وب ایران استفاده شده و نمایانگر میزان نصب دقیق و استفاده واقعی نیست.
| Approx. Usage in .ir Domain via Google (Total Pages) | Search Query (Dork) | Product |
| 55 | site:.ir “Ubuntu” “snapd” | Ubuntu snapd |
| 230,000 | site:.ir “Ubuntu” | Ubuntu |
منابع
- https://www.cve.org/CVERecord?id=CVE-2026-3888
- https://www.cvedetails.com/cve/CVE-2026-3888/
- https://ubuntu.com/security/notices/USN-8102-1
- https://discourse.ubuntu.com/t/snapd-local-privilege-escalation-cve-2026-3888
- https://vulmon.com/vulnerabilitydetails?qid=CVE-2026-3888
- https://vuldb.com/vuln/351371
- https://ubuntu.com/security/CVE-2026-3888
- https://blog.qualys.com/vulnerabilities-threat-research/2026/03/17/cve-2026-3888-important-snap-flaw-enables-local-privilege-escalation-to-root
- https://cdn2.qualys.com/advisory/2026/03/17/snap-confine-systemd-tmpfiles.txt
- http://www.openwall.com/lists/oss-security/2026/03/18/1
- https://nvd.nist.gov/vuln/detail/CVE-2026-3888
- https://cwe.mitre.org/data/definitions/268.html
گزارش اثبات آسیبپذیری CVE-2026-3888
اطلاعات آسیبپذیری
عنوان: افزایش سطح دسترسی (Local Privilege Escalation) در snapd از طریق سوءاستفاده از پاکسازی خودکار systemd-tmpfiles و بازسازی دایرکتوری خصوصی
شناسه: CVE-2026-3888
وضعیت مشاوره: Advisory / Patch Available
امتیاز: CVSS: 7.8 (High)
محصول: snapd
محصول / نسخههای آسیبپذیر
در نسخههای زیر:
- snapd نسخههای پیش از 2.58.4 (شامل نسخههای 2.58.x و قدیمیتر)
- Ubuntu 16.04 LTS
- Ubuntu 18.04 LTS
- Ubuntu 20.04 LTS
- Ubuntu 22.04 LTS
- Ubuntu 24.04 LTS
محیطهای درگیر
- سیستمهای Ubuntu که از snapd استفاده میکنند
- سیستمهایی که systemd-tmpfiles برای پاکسازی خودکار /tmp فعال است
- توزیعهای مبتنی بر اوبونتو (مانند Linux Mint و Pop!_OS) که از snapd بهره میبرند
- سرورهای ابری و مجازی که snapd روی آنها نصب شده و systemd-tmpfiles برای پاکسازی خودکار /tmp پیکربندی شده است
- محیطهای توسعهدهنده که از snap برای نصب ابزارهای توسعه استفاده میکنند
- سیستمهایی که کاربران غیرقابل اعتماد محلی به آنها دسترسی دارند (مانند سرورهای مشترک یا محیطهای آموزشی)
- سیستمهایی که snap-confine را با مجوزهای بالا استفاده می کنند
- سرورهایی که snapd به صورت غیرفعال اما snap-confine موجود است
کامپوننتهای آسیبپذیر
- snap-confine (باینری setuid root برای ساخت sandbox snap)
- systemd-tmpfiles (ابزار مدیریت فایل های موقت در سیستم های مبتنی بر systemd)
- دایرکتوری /tmp/.snap (دایرکتوری خصوصی که snap-confine در حین راه اندازی سندباکس از آن استفاده می کند) و دایکتوری /tmp/snap-private-tmp
- مکانیزم های مجوزدهی snap، سوءاستفاده از مجوزهای اضافی snap-confine برای اجرای کد با سطح دسترسی بالاتر
- مکانیزم مدیریت /tmp/.snap و snap-private-tmp
- فایلهای پیکربندی tmpfiles در /etc/tmpfiles.d/
ریشه مشکل (Root Cause Analysis)
ریشه اصلی این آسیبپذیری یک race condition از نوع TOCTOU (Time-of-Check to Time-of-Use) بین دو کامپوننت استاندارد سیستم است. snap-confine هنگام اجرای یک snap application، دایرکتوری خصوصی موقتی /tmp/.snap (یا /tmp/snap-private-tmp/…/.snap) را با مالکیت root:root و مجوزهای 0755 ایجاد میکند.
snap-confine یک باینری setuid-root است که قبل از اجرای هر برنامه snap، محیط sandbox را با استفاده از mount namespace، cgroup، AppArmor و seccomp می سازد. این کامپوننت برای انجام عملیات kernel-level نیاز به دسترسی root دارد. در حین این فرآیند، snap-confine از یک دایرکتوری خصوصی در /tmp/.snap برای عملیات موقت خود استفاده می کند.
از طرف دیگر، systemd-tmpfiles یک سرویس سیستمی است که به صورت دورهای فایل ها و دایرکتوری های قدیمی در /tmp را پاکسازی می کند. در پیکربندی پیشفرض Ubuntu 24.04، این سرویس هر 30 روز یکبار (و در نسخه های بعدی هر 10 روز) دایرکتوری های قدیمی را حذف میکند.
نقص امنیتی زمانی رخ می دهد که systemd-tmpfiles دایرکتوری /tmp/.snap را به عنوان یک فایل “stale” شناسایی کرده و حذف می کند. در این لحظه، یک مهاجم محلی می تواند بلافاصله این دایرکتوری را با محتوای مخرب خود بازسازی کند. هنگامی که snap-confine در راهاندازی بعدی sandbox اجرا می شود، این دایرکتوری ساختگی را به عنوان root، bind-mount می کند و به مهاجم اجازه می دهد کد دلخواه را در context با دسترسی root اجرا کند.
این نقص از نوع CWE-268: Privilege Chaining است، زیرا تعامل بین دو کامپوننت با دسترسی بالا (snap-confine و systemd-tmpfiles) یک مسیر افزایش سطح دسترسی ایجاد میکند.
بخش آسیبپذیر
رفتار ناامن سیستم:
snap-confine بدون بررسی کافی مالکیت و وضعیت دایرکتوری /tmp/.snap پس از پاکسازی توسط systemd-tmpfiles، آن را به عنوان دایرکتوری معتبر قبول میکند و عملیات privileged (مانند mount و ایجاد فایل) را داخل آن انجام میدهد. این رفتار به مهاجم محلی اجازه می دهد تا دایرکتوری حذف شده را با محتوای مخرب خود جایگزین کرده و باعث شود snap-confine آن محتوا را با دسترسی root در سندباکس mount کند.
نحوه سوءاستفاده مهاجم:
- مهاجم با یک حساب کاربری معمولی وارد سیستم می شود
- مهاجم منتظر میماند تا systemd-tmpfiles دایرکتوری /tmp/.snap مربوط به یک snap نصبشده (مثل firefox) را پاک کند (این فاصله زمانی معمولا بین 10 الی 30 روز است، اما می توان فاصله زمانی را تغییر داد)
- به محض حذف دایرکتوری، مهاجم بلافاصله آن را با فایلهای مخرب خود بازسازی میکند
- سپس مهاجم snap-confine را از طریق اجرای یک snap فراخوانی میکند تا عملیات privileged روی دایرکتوری کنترلشده توسط مهاجم انجام شود
- snap-confine در حین راهاندازی سندباکس، دایرکتوری بازآفرینیشده را mount کرده و محتوای مخرب مهاجم را با دسترسی root بارگذاری میکند
- مهاجم به اجرای کد با سطح دسترسی root دست پیدا میکند
نقش این آسیبپذیری در زنجیره حمله
این آسیب پذیری یک Local Privilege Escalation قابل اعتماد است. مهاجم با دسترسی اولیه کاربر معمولی می تواند به root برسد. تأثیر آن نقض کامل Confidentiality، Integrity و Availability سیستم است.
پیشنیازهای بهرهبرداری (Prerequisites)
- دسترسی محلی به سیستم با کاربر معمولی
- نصب snapd روی سیستم
- فعال بودن systemd-tmpfiles
- پیکربندی پیش فرض systemd-tmpfiles برای پاکسازی /tmp/.snap
- حداقل یک برنامه snap روی سیستم داشته باشد (تقریباً تمام سیستم های اوبونتو حداقل snap core را نصب کردهاند)
- نسخه آسیبپذیر Ubuntu
- عدم نصب وصله امنیتی
- انتظار برای چرخه پاکسازی دایرکتوریهای موقتی
رفتار مورد انتظار در حالت امن (Expected Secure Behavior)
- snap-confine باید قبل از mount کردن دایرکتوری /tmp/.snap، اصالت و یکپارچگی آن را بررسی کند
- snap-confine باید از مکانیزم های امنتری مانند dentries با دسترسی محدود یا tmpfs خصوصی استفاده کند که توسط کاربران معمولی قابل بازسازی نباشد
- snap-confine باید پس از مشاهده حذف دایرکتوری خصوصی خود، به جای استفاده مجدد، آن را با دسترسیهای صحیح بازسازی کند
- عملیات mount نباید روی مسیرهای قابل کنترل توسط کاربر انجام شود
- اگر دایرکتوری /tmp/.snap وجود نداشت یا مشکوک به نظر می رسید، snap-confine باید آن را بازآفرینی کند، نه اینکه دایرکتوری موجود (احتمالاً مخرب) را mount کند (اصل Fail Secure)
- systemd-tmpfiles باید دایرکتوری های سیستمی حیاتی را از پاکسازی خودکار مستثنی کند
- باید از مکانیزمهای امنیتی مانند O_TMPFILE یا file descriptors باز استفاده شود تا از race conditions جلوگیری شود
راهکارها و کاهش ریسک (Mitigation / Patch Guidance)
اقدامات فوری برای کاهش ریسک:
- بهروزرسانی snapd به آخرین نسخه پایدار ارائهشده توسط Canonical
- اعمال هاردنینگ پیشنهادی Canonical (مانند تغییرات در tmpfiles و snap-confine)
- پیکربندی systemd-tmpfiles برای جلوگیری از پاکسازی /tmp/.snap
- غیرفعال کردن و یا حدف snapd در صورت عدم نیاز
اقدامات کوتاهمدت / میانمدت برای کاهش ریسک:
- غیرفعال کردن پاکسازی خودکار /tmp توسط systemd-tmpfiles
- پایش لاگ های سیستم برای شناسایی فعالیت های مشکوک مرتبط با snap-confine
- استفاده از AppArmor profiles سختگیرانهتر برای snap-confine
- محدود کردن دسترسی به snap-confine برای کاربران معمولی
اقدامات بلندمدت برای کاهش ریسک:
- استقرار راهکارهای خودکار بهروزرسانی امنیتی (Patch Management) برای اعمال سریع وصلهها
- استقرار راهکارهای EDR (Endpoint Detection and Response) برای شناسایی رفتارهای مشکوک
- بازبینی دوره ای پیکربندی systemd-tmpfiles و اطمینان از مستثنی بودن دایرکتوری های حیاتی
- آموزش تیم های عملیاتی در خصوص خطرات آسیب پذیری های LPE و نحوه شناسایی و پاسخ به آنها
- استقرار سیستمهای تشخیص نفوذ مبتنی بر هاست (HIDS) مانند Osquery یا Wazuh
تشخیص و مانیتورینگ (Detection & Monitoring)
نشانههای تلاش برای سوءاستفاده:
- ایجاد غیرمنتظره دایرکتوری /tmp/.snap توسط یک کاربر غیر root
- تغییرات مکرر در محتوای /tmp/.snap در بازه های زمانی کوتاه
- فراخوانی های مشکوک snap-confine با پارامترهای غیرعادی
- اجرای فرآیندهایی با دسترسی root که از یک کاربر معمولی شروع شدهاند
- لاگ های AppArmor یا auditd که نشان دهنده تلاش برای bind-mount دایرکتوری های غیرمجاز هستند
- فعالیت غیرعادی در لاگ های systemd-tmpfiles مربوط به حذف /tmp/.snap
- اجرای غیرمنتظره برنامههای snap
منابع پیشنهادی برای مانیتورینگ و پایش:
- لاگ های سیستمی /var/log/syslog و /var/log/auth.log برای شناسایی فعالیت های مشکوک snap-confine
- ابزار auditd برای پایش فراخوانی های سیستمی حساس مانند mount، bind-mount و execve
- سیستم های SIEM برای جمع آوری و تحلیل مرکزی لاگ ها
- ابزارهای EDR برای شناسایی رفتارهای غیرعادی فرآیند های snap
- ابزارهای مانیتورینگ یکپارچگی فایل (FIM) مانند AIDE یا Tripwire برای تشخیص تغییرات ناخواسته
واکنش به حادثه (Incident Response)
- ایزوله سازی فوری، سیستم آسیب دیده را از شبکه جدا کنید تا از حرکت جانبی مهاجم جلوگیری شود
- بررسی محتویات /tmp/.snap برای جستجو برای فایل های مخرب، اسکریپت های shell، یا باینری های غیرعادی
- بازبینی فرآیندهای در حال اجرا با دسترسی root که از مسیر غیرمعمول اجرا شده اند
- بازنشانی رمزهای عبور تمام کاربران سیستم (به خصوص root)
- نصب فوری وصله امنیتی
- بررسی احتمال استخراج اطلاعات
- مستندسازی کامل حادثه (زمان وقوع، نشانهها، اقدامات انجامشده، درسآموختهها) و گزارش به مدیریت ارشد و تیم واکنش سریع (CSIRT)
جریان حمله (Attack Flow)
در نمودار زیر (شکل ۱)، مهاجم با دسترسی محلی عادی منتظر اجرای فرآیند پاکسازی systemd-tmpfiles میشود. پس از حذف دایرکتوری /tmp/.snap، مهاجم همان مسیر را مجدداً ایجاد کرده و فایل های کنترل شده توسط خود را در آن قرار می دهد. در مرحله بعد، snap-confine هنگام ساخت sandbox این فایل ها را به عنوان بخشی از محیط مورد اعتماد پردازش می کند و در نهایت کد مهاجم با دسترسی root اجرا می شود. این فرآیند باعث عبور کامل از مرزهای امنیتی سیستم و دستیابی به دسترسی root خواهد شد.

شکل 1: جریان اجرای آسیب پذیری
اثبات مفهوم (PoC) — کاملاً غیرمخرب
آزمایشگاه تخصصی Vulnerbyte، این آسیبپذیری را در محیط ایزوله و کنترلشده با استفاده از نسخه آسیبپذیر بررسی و اجرا کرده است
- این آزمایشگاه شامل نسخه آسیبپذیر توزیع سیستم عامل Ubuntu و برنامه ی snap است
خروجی اجرای فایل exploit نحوهی سوءاستفاده از CVE-2026-3888 را نشان میدهد که فرآیند کاربر عادی در نهایت قادر به دستیابی به دسترسی root میشود.
- اجرای PoC در محیط آزمایشگاهی منجر به گرفتن دسترسی root میشود در سامانه آسیبپذیر شد.
- این اثبات مفهوم صرفاً توصیفی و آموزشی بوده و شامل تغییرات مخرب نمیشود

شکل 2: اجرای POC
رفع مسئولیت
این گزارش صرفاً با هدف آموزش، تحلیل فنی و ارتقای امنیت سازمانی تهیه شده است. هرگونه استفاده مخرب یا خارج از چارچوبهای قانونی از محتوای آن ممنوع است.
منابع
https://www.cve.org/CVERecord?id=CVE-2026-3888
https://nvd.nist.gov/vuln/detail/CVE-2026-3888
https://cwe.mitre.org/data/definitions/268.html
https://github.com/TheCyberGeek/CVE-2026-3888-snap-confine-systemd-tmpfiles-LPE
https://ubuntu.com/security/CVE-2026-3888
https://discourse.ubuntu.com/t/snapd-local-privilege-escalation-cve-2026-3888/78627
https://ubuntu.com/security/notices/USN-8102-1
snapd (Ubuntu)
CVE-2026-3888 – Local Privilege Escalation via Interaction Between snap-confine and systemd-tmpfiles
Affects
- snapd (package managing Snap applications)
- Ubuntu Linux distributions:
- Ubuntu 16.04 LTS (Xenial)
- Ubuntu 18.04 LTS (Bionic)
- Ubuntu 20.04 LTS (Focal)
- Ubuntu 22.04 LTS (Jammy)
- Ubuntu 24.04 LTS (Noble)
- Ubuntu 25.10 (Questing)
- Ubuntu 26.04 LTS (Resolute – development release)
- Components:
snap-confine(SUID-root binary for building snap sandboxes)systemd-tmpfiles(daemon for cleaning temporary directories)
- Files:
/tmp/.snap(private directory created by snap-confine)/lib/systemd/system/systemd-tmpfiles*.conf(configuration for temporary directory cleanup)
- Functions:
systemd-tmpfilescleanup routinesnap-confinemount namespace initialization
Description
CVE-2026-3888 is a high-severity local privilege escalation vulnerability in snapd, discovered by the Qualys Security Research Team and publicly disclosed on March 17, 2026 . What makes this vulnerability particularly interesting is that it does not stem from a single buggy component, but rather emerges from the interaction of two individually secure programs: snap-confine and systemd-tmpfiles .
snap-confine is a SUID-root binary responsible for building the mount namespace (sandbox) for snap applications. During its operation, it creates a private directory /tmp/.snap owned by root with 0755 permissions . Separately, systemd-tmpfiles is a legitimate system daemon that periodically cleans up stale files and directories in /tmp to prevent disk clutter.
The vulnerability arises when systemd-tmpfiles automatically deletes the stale /tmp/.snap directory after a certain period of inactivity (30 days on Ubuntu 24.04, 10 days on newer versions) . Because /tmp is world-writable, an attacker can detect when this cleanup occurs and recreate the /tmp/.snap directory, but this time owning it with their own user privileges.
After recreating the directory, the attacker uses advanced techniques—including an AF/UNIX backpressure race condition—to single-step snap-confine‘s execution. At the precise moment after snap-confine verifies the directory but before it bind-mounts libraries, the attacker atomically swaps the library directory. snap-confine then bind-mounts the attacker-owned libraries as root into the namespace. By overwriting ld-linux-x86-64.so.2 with custom shellcode, the attacker can cause any SUID binary executed in this namespace to run arbitrary code as root .
The attack culminates in escaping AppArmor confinement (via /var/snap/firefox/common/ or similar paths) to obtain a fully privileged root shell, resulting in complete system compromise .
Attack Vector
Primary Attack Vector:
Local (requires unprivileged user account on the target system)
Attack Scenario:
- An attacker obtains a low-privileged shell on a vulnerable Ubuntu system (e.g., Ubuntu 24.04 Desktop default installation).
- The attacker enters a snap sandbox (e.g., by launching
firefoxor another snap application), andsnap-confinecreates/tmp/.snapasroot:root 0755. - The attacker keeps
/tmpactive with periodic writes but allows the/tmp/.snapdirectory to go stale (no longer accessed). systemd-tmpfileseventually deletes the stale/tmp/.snapdirectory during its periodic cleanup cycle.- The attacker detects this deletion and immediately recreates
/tmp/.snap—this time owning it as their own user. - Using the AF/UNIX backpressure race technique, the attacker precisely times the execution of a new snap application to single-step through
snap-confine‘s mount sequence. - At the vulnerable moment after
snap-confinehas validated the directory but before it bind-mounts libraries, the attacker atomically swaps a fake library directory into place. snap-confinebind-mounts the attacker-controlled libraries (with root privileges) into the namespace.- The attacker overwrites
ld-linux-x86-64.so.2with custom shellcode—any SUID binary executed in this namespace now runs the attacker’s code as root. - The attacker escapes AppArmor confinement via a shared common directory (e.g.,
/var/snap/firefox/common/), obtaining a fully privileged root shell.
Key Characteristics:
- Attack Complexity: HIGH – Requires precise race condition timing and waiting for the systemd-tmpfiles cleanup cycle (up to 30 days)
- Privileges Required: LOW – Attack starts with any unprivileged user account
- User Interaction: NONE – Once the race is set up, no further user action is needed
- Exploit available: Yes – public educational proof-of-concept exists
- No authentication required – Local system access is sufficient
Conditions Increasing Risk:
- Default Ubuntu Desktop installations (snapd present)
- Systems with long uptime allowing systemd-tmpfiles cleanup cycles to occur
- Systems where local user accounts are accessible to multiple users (shared workstations)
- Lack of timely security updates for snapd
Impact
Successful exploitation allows a local unprivileged attacker to:
- Escalate privileges to root on the affected system
- Execute arbitrary code as root by manipulating the snap sandbox environment
- Escape AppArmor confinement that normally restricts snap applications
- Install persistent backdoors (rootkits, unauthorized users, modified system binaries)
- Modify system files and configurations with full integrity impact
- Access sensitive data across the entire system (other users’ files, credentials, application data)
- Disrupt system availability by manipulating critical system processes
- Use compromised system as a pivot point for lateral movement within enterprise networks
This represents a complete system takeover from an unprivileged starting point. The CVSS scope is marked as CHANGED because the attack escalates from a low-privileged process to the root-level security domain .
Observed Exploitation & Threat Activity
- Discovery and Disclosure: March 17, 2026 – Qualys Security Research Team
- Public Disclosure Date: March 17, 2026
- Patch Availability: Patches released concurrently with disclosure
- Public PoC: Yes – educational proof-of-concept available on GitHub (as of March 2026)
- In-the-Wild Exploitation: No confirmed active exploitation as of publication
- Advisory Published: Ubuntu Security Notice and Qualys advisory
- GitHub Advisory Database: Published by NVD
- CVSS Score: 7.8 (High)
Attack Timeline:
| Ubuntu Version | Cleanup Age (systemd-tmpfiles) | Wait Time Required |
|---|---|---|
| Ubuntu 24.04 LTS | 30 days | Up to 30 days |
| Ubuntu > 24.04 | 10 days | Up to 10 days |
Current Status: Awaiting Analysis (as of March 18, 2026)
Severity & Metrics
- CVSS v3.1 (NVD): High (7.8)
- Attack Vector: LOCAL
- Attack Complexity: HIGH
- Privileges Required: LOW
- User Interaction: NONE
- Scope: CHANGED
- Confidentiality Impact: HIGH
- Integrity Impact: HIGH
- Availability Impact: HIGH
Vector String: CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H
CVSS v4.0 (Red Hat): 7.8 (High) – CVSS:4.0/AV:L/AC:H/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N [citation:unknown]
Relevant CWE:
- CWE-268 – Privilege Chaining (combination of two distinct security features allows unsafe actions)
- CAPEC-233 – Privilege Escalation
Patch & Vendor Status
- Official Patches Available: Yes – released March 17, 2026
- Patch Source: Ubuntu Security Notices and snapd upstream
- GitHub Commit: https://github.com/canonical/snapd/commit/5400bfdf1e4c3f861826a215417234420470cb25
Fixed snapd Versions by Ubuntu Release:
| Ubuntu Release | Fixed snapd Version |
|---|---|
| Ubuntu 25.10 (Questing) | 2.73+ubuntu25.10.1 |
| Ubuntu 24.04 LTS (Noble) | 2.73+ubuntu24.04.2 |
| Ubuntu 22.04 LTS (Jammy) | 2.73+ubuntu22.04.1 |
| Ubuntu 20.04 LTS (Focal) | 2.67.1+20.04ubuntu1~esm1 |
| Ubuntu 18.04 LTS (Bionic) | 2.61.4ubuntu0.18.04.1+esm2 |
| Ubuntu 16.04 LTS (Xenial) | 2.61.4ubuntu0.16.04.1+esm2 |
Debian Status:
| Debian Release | Status | Version |
|---|---|---|
| Bullseye (oldstable) | vulnerable | 2.49-1+deb11u2 |
| Bookworm (stable) | fixed | 2.57.6-1+deb12u1 |
| Trixie (testing) | fixed | 2.68.3-3+deb13u1 |
| Sid (unstable) | vulnerable | 2.75.2-1 |
Debian Security Advisory: DSA-6170-1
Mitigation & Remediation
Immediate Actions
| Action | Command / Method |
|---|---|
| Update snapd package | sudo apt update && sudo apt upgrade snapd |
| Apply all pending security updates | sudo apt update && sudo apt dist-upgrade |
| Restart affected services | sudo systemctl restart snapd (or reboot) |
| Verify fixed version | snap version – check snapd version against table above |
Minimum snapd safe versions:
- Ubuntu 24.04: snapd 2.73+ubuntu24.04.2 or later
- Ubuntu 22.04: snapd 2.73+ubuntu22.04.1 or later
- Ubuntu 20.04: snapd 2.67.1+20.04ubuntu1~esm1 or later
- Ubuntu 18.04: snapd 2.61.4ubuntu0.18.04.1+esm2 or later
- Ubuntu 16.04: snapd 2.61.4ubuntu0.16.04.1+esm2 or later
Short-Term Defensive Measures
If patching cannot be applied immediately:
- Restrict local user access – Limit who can log into the system, especially on shared workstations
- Monitor /tmp/.snap directory – Alert on unauthorized creation or ownership changes
- Consider disabling systemd-tmpfiles cleanup for /tmp (advanced, may impact system performance)
- Enforce principle of least privilege – Minimize local user accounts
- Disable snapd if not required –
sudo systemctl disable --now snapd(removes snap functionality entirely)
Important Notes:
- The vulnerability requires local access – systems without unprivileged local user access are not at risk
- The attack requires a waiting period (10-30 days) for the cleanup cycle – this provides a detection window
- No workaround addresses the root cause; patching is the only complete solution
Detection & Monitoring
Recommended Detection Sources:
| Source | Purpose |
|---|---|
System logs (/var/log/syslog, /var/log/auth.log) |
Monitor for snapd or systemd-tmpfiles anomalies |
| File integrity monitoring (FIM) | Monitor /tmp/.snap creation and ownership changes |
| Process monitoring (auditd/EDR) | Detect suspicious snap-confine execution patterns |
| Package version scanning | Identify vulnerable snapd versions |
Indicators of Attempted Exploitation:
- Unusual recreation of
/tmp/.snapdirectory by non-root users - Ownership changes of
/tmp/.snapfrom root to an unprivileged user - Unexpected snap-confine executions with unusual timing patterns
- Library path manipulation attempts within snap sandboxes
- AppArmor violation logs related to snap confinement escapes
- Unusual child processes spawned from snap applications
Detection Strategy:
- Inventory snapd versions across all Ubuntu systems:
snap version | grep snapd dpkg -l snapd - Monitor for vulnerable systems using vulnerability scanners (Nessus, Qualys, OpenVAS)
- Enable audit rules for
/tmp/.snap:sudo auditctl -w /tmp/.snap -p wa -k snapd_exploit - Review logs for systemd-tmpfiles activity on
/tmp:journalctl -u systemd-tmpfiles-clean.service
Deferred to package maintainer for additional detection signatures .
Post-Incident Response
If exploitation is suspected or a system is confirmed vulnerable with evidence of local access by untrusted users:
- Isolate affected system from the network immediately to prevent lateral movement
- Preserve forensic evidence – Collect:
- System logs (
/var/log/) snapdlogs (journalctl -u snapd)- File system timestamps for
/tmp/.snap - Process execution history
- System logs (
- Rotate all credentials stored on the compromised system (SSH keys, application secrets, user passwords)
- Audit for backdoors – Check:
- SUID binaries modified or added
- Cron jobs (
/etc/crontab, user crontabs) - Systemd services
- SSH authorized_keys files
- Kernel modules
- Assume full compromise – Root access means the attacker could have modified any system component
- Rebuild system from a trusted, clean installation after patching
- Extend investigation to any systems accessible from the compromised host (network shares, SSH trust relationships)
- Review other Ubuntu systems in the environment for the same vulnerability
- Document incident – Timeline, indicators of compromise, affected systems, and response actions
For Enterprise Environments:
- Implement a patch management policy requiring snapd updates within 7 days of release
- Use vulnerability management tools to track CVE-2026-3888 compliance
- Consider restricting local user access on systems that cannot be patched immediately
References
- https://cdn2.qualys.com/advisory/2026/03/17/snap-confine-systemd-tmpfiles.txt
- https://ubuntu.com/security/CVE-2026-3888
- https://security-tracker.debian.org/tracker/CVE-2026-3888
- https://github.com/advisories/ghsa-grpw-jgrw-ccqr
- https://github.com/nomaisthere/CVE-2026-3888
- https://securitricks.com/cve/CVE-2026-3888
- https://vulnerability.circl.lu/vuln/Cve-2026-3888
- https://asec.ahnlab.com/en/93038/
- https://cvetodo.com/cve/CVE-2026-3888
- https://www.openwall.com/lists/oss-security/2026/03/17/8
- https://bugs.debian.org/1131120
- https://cwe.mitre.org/data/definitions/268.html
- https://capec.mitre.org/data/definitions/233.html
بررسی آماری آسیب پذیری CVE-2026-3888 در کشور ایران
محصول آسیب پذیر: snapd (مدیر بستههای snap در اوبونتو و توزیعهای مبتنی بر آن) – نسخههای قبل از 2.73 در اوبونتو 24.04 LTS و نسخههای قبل از 2.74.2
میزان استفاده در ایران بر اساس سایت های آمار مرتبط با محصول
طبق دادههای StatCounter در می 2026، سیستمعامل لینوکس (با احتساب تمام توزیعها) سهم قابل توجهی از بازار دسکتاپ در ایران را به خود اختصاص داده است. در میان توزیعهای لینوکس، اوبونتو به دلیل سهولت استفاده، پشتیبانی گسترده و جامعه کاربری فعال، محبوبترین توزیع در میان کاربران ایرانی محسوب میشود. snapd به عنوان سرویس مدیریت بستههای snap در اوبونتو، به طور پیشفرض روی تمامی نسخههای اوبونتو از 16.04 به بعد نصب و فعال است. این یعنی هر کاربر اوبونتو در ایران که از نسخههای استاندارد این سیستمعامل استفاده میکند، به طور بالقوه در معرض این آسیبپذیری قرار دارد
میزان استفاده در ایران بر اساس موتورهای جستجو (بر اساس ایندکس های گوگل در بخش tools)
تعداد در زمان نگارش گزارش
| موتور جستجو | Dork | تعداد |
| site:.ir “Ubuntu” | 235,000 | |
| site:.ir “Ubuntu” “Desktop” | 13,800 | |
| site:.ir “snapd” | 321 | |
| site:.ir “snap” “Ubuntu” آموزش | 457 |
وجود نمایندگی در ایران
اوبونتو (Ubuntu) توسط شرکت Canonical توسعه داده میشود. این شرکت دفتر رسمی یا نمایندگی در ایران ندارد. کاربران ایرانی برای دریافت بهروزرسانیهای امنیتی و پشتیبانی از اوبونتو، عمدتاً به مخازن نرمافزاری آنلاین (مانند apt.ubuntu.com) و انجمنهای آنلاین فارسی وابسته هستند. هیچ گونه پشتیبانی رسمی از طرف شرکت سازنده در کشور وجود ندارد.
میزان استفاده بر اساس گزارشات تحقیقات بازار برای این محصول در ایران
اگرچه آمار رسمی و دقیقی از تعداد سیستمهای آسیبپذیر در ایران وجود ندارد، اما شواهد زیر نشاندهنده سطح قابل توجه ریسک است.
- استفاده از اوبونتو در ایران: اوبونتو به عنوان محبوبترین توزیع لینوکس در ایران، سهم قابل توجهی از کاربران لینوکس کشور را به خود اختصاص داده است. به گزارش یکی از کاربران انجمن فارسی اوبونتو ایران ” بخش لیست کاربران” نشون می دهد این سایت یازده هزار عضو داره و با یک تقریب مهندسی میشه گفت نزدیک به 6000 استفاده کننده فعال داره. این کاربران شامل توسعهدهندگان نرمافزار، دانشجویان رشتههای کامپیوتر، مدیران سیستم و کاربران خانگی حرفهای هستند.
- محبوبیت در بین کاربران فارسیزبان: وجود مقالات آموزشی متعدد در وبسایتهای معتبر ایرانی مانند «انجمنهای فارسی اوبونتو», کانالهای تلگرامی و ویدیوهای آموزشی در آپارات و یوتیوب درباره نصب و استفاده از اوبونتو و snap، نشاندهنده استقبال گسترده از این توزیع در جامعه کاربران ایرانی است. به طور خاص، snapبه عنوان روش سادهتر نصب نرمافزار (نسبت به کامپایل از سورس) در بسیاری از آموزشهای فارسی توصیه میشود.
- تخمین میزان استفاده: با توجه به تعداد کاربران اوبونتو در ایران و نسبت کاربرانی که از نسخههای ۲۴.۰۴ LTS و جدیدتر استفاده میکنند (تخمین حدود ۲۰-۳۰٪ از کل کاربران اوبونتو)، میتوان تخمین زد که دست کم ۱۵,۰۰۰ سیستم اوبونتو در ایران به طور بالقوه در معرض این آسیبپذیری قرار دارند. این سیستمها عمدتاً شامل رایانههای شخصی توسعهدهندگان، لپتاپهای دانشجویی و سیستمهای دسکتاپ شرکتهای فعال در حوزه فناوری اطلاعات میشوند. این موضوع به ویژه با توجه به اینکه مهاجم تنها با دسترسی کاربر عادی (مثلاً از طریق یک برنامه مخرب نصبشده یا دسترسی فیزیکی محدود) میتواند طی یک فرآیند حملات شرایط رقابتی (race condition)، کنترل کامل سیستم را به دست گیرد، بسیار نگرانکننده است.
منابع
https://gs.statcounter.com/os-market-share/desktop/iran
https://forum.ubuntu-ir.org/index.php?topic=39187.0