{"id":7300,"date":"2025-09-30T10:03:53","date_gmt":"2025-09-30T10:03:53","guid":{"rendered":"https:\/\/serisec.com\/index.php\/2025\/09\/30\/fake-postmark-mcp-server-silently-stole-thousands-of-emails-with-a-single-line-of-malicious-code\/"},"modified":"2025-09-30T10:03:53","modified_gmt":"2025-09-30T10:03:53","slug":"fake-postmark-mcp-server-silently-stole-thousands-of-emails-with-a-single-line-of-malicious-code","status":"publish","type":"post","link":"https:\/\/serisec.com\/index.php\/2025\/09\/30\/fake-postmark-mcp-server-silently-stole-thousands-of-emails-with-a-single-line-of-malicious-code\/","title":{"rendered":"Fake Postmark MCP Server Silently Stole Thousands of Emails With a Single Line of Malicious Code"},"content":{"rendered":"<p>    Fake Postmark MCP Server Silently Stole Thousands of Emails With a Single Line of Malicious Code<br \/>\n \t<BR><br \/>\n<BR><\/BR><br \/>\n    <!-- no image --><br \/>\n \t<BR><br \/>\n<BR><\/BR><\/p>\n<div>\n<p>A malicious<a href=\"https:\/\/cybersecuritynews.com\/new-malicious-npm-packages-attack-amazon-slack\/\" target=\"_blank\" rel=\"noreferrer noopener\"> npm package<\/a> masquerading as the official Postmark <a href=\"https:\/\/cybersecuritynews.com\/cloudflare-unveils-mcp-server-portals\/\" target=\"_blank\" rel=\"noreferrer noopener\">MCP Server<\/a> has been exfiltrating user emails to an external server.\u00a0<\/p>\n<p>This fake \u201cpostmark-mcp\u201d module, available on npm from versions 1.0.0 through 1.0.15, built trust over 15 incremental releases before dropping a backdoor in version 1.0.16.\u00a0<\/p>\n<p>The stealthy payload consisted of a single line of code that silently BCC\u2019d every <a href=\"https:\/\/cybersecuritynews.com\/hr-it-related-phishing-emails-are-top-clicked\/\" target=\"_blank\" rel=\"noreferrer noopener\">outbound email<\/a> to the attacker\u2019s domain.<\/p>\n<h2 class=\"wp-block-heading\" id=\"h-postmark-mcp-bcc-email-exfiltration-attack\"><strong>Postmark-mcp BCC Email Exfiltration Attack<\/strong><\/h2>\n<p>According to Postmark the attacker published the \u201cpostmark-mcp\u201d package under the guise of ActiveCampaign\u2019s Postmark MCP Server library.\u00a0<\/p>\n<p>By aligning naming, versioning, and package description with legitimate Postmark conventions, the malicious actor evaded cursory scrutiny.\u00a0<\/p>\n<p>Developers integrating MCP services via npm install postmark-mcp unknowingly pulled in a trojanized dependency. In version 1.0.16, a lone line inserted into the main transport script added unauthorized BCC functionality:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"601\" height=\"51\" src=\"https:\/\/i0.wp.com\/cybersecuritynews.com\/wp-content\/uploads\/2025\/09\/image-199.png?resize=601%2C51&#038;ssl=1\" alt=\"Fake Postmark MCP Attack\" class=\"wp-image-128435\" srcset=\"https:\/\/cybersecuritynews.com\/wp-content\/uploads\/2025\/09\/image-199.png 601w, https:\/\/cybersecuritynews.com\/wp-content\/uploads\/2025\/09\/image-199-300x25.png 300w, https:\/\/cybersecuritynews.com\/wp-content\/uploads\/2025\/09\/image-199-150x13.png 150w\" sizes=\"(max-width: 601px) 100vw, 601px\"><\/figure>\n<\/div>\n<p>This code snippet hooks into the existing Postmark client workflow, leveraging the addHeader method to duplicate outbound emails.\u00a0<\/p>\n<p>Because the malicious line is syntactically innocuous and embedded alongside legitimate header setup logic, it escaped notice in code reviews and automated security scans.<\/p>\n<p>Thousands of email messages exchanged between developers and their users were silently forwarded to the attacker\u2019s server.\u00a0<\/p>\n<p>Although the legitimate Postmark API and official SDKs remain uncompromised, organizations relying on unverified third-party packages may have suffered unauthorized data leakage.<\/p>\n<p>Postmark urges all users to immediately:<\/p>\n<ul class=\"wp-block-list\">\n<li>Uninstall \u201cpostmark-mcp\u201d from your projects:<\/li>\n<\/ul>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"328\" height=\"43\" src=\"https:\/\/i0.wp.com\/cybersecuritynews.com\/wp-content\/uploads\/2025\/09\/image-198.png?resize=328%2C43&#038;ssl=1\" alt=\"Fake Postmark MCP Attack\" class=\"wp-image-128434\" srcset=\"https:\/\/cybersecuritynews.com\/wp-content\/uploads\/2025\/09\/image-198.png 328w, https:\/\/cybersecuritynews.com\/wp-content\/uploads\/2025\/09\/image-198-300x39.png 300w, https:\/\/cybersecuritynews.com\/wp-content\/uploads\/2025\/09\/image-198-324x43.png 324w, https:\/\/cybersecuritynews.com\/wp-content\/uploads\/2025\/09\/image-198-150x20.png 150w\" sizes=\"(max-width: 328px) 100vw, 328px\"><\/figure>\n<\/div>\n<ul class=\"wp-block-list\">\n<li>Examine SMTP logs and Postmark track events for suspicious BCC operations or unexpected API calls.<\/li>\n<li>Change any credentials or tokens transmitted during the compromise window to prevent further unauthorized access.<\/li>\n<\/ul>\n<p>Postmark <a href=\"https:\/\/postmarkapp.com\/blog\/information-regarding-malicious-postmark-mcp-package\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">reaffirms<\/a> that it has never published a \u201cpostmark-mcp\u201d library on npm. The official packages and SDKs are listed in the Postmark documentation and GitHub repository.\u00a0<\/p>\n<p>Users can verify package authenticity by checking the postmark and postmark.js libraries maintained at github.com\/ActiveCampaign\/postmark and consulting the API docs at Postmark\u2019s developer portal.<\/p>\n<p>This incident highlights the critical importance of vetting third-party dependencies. Integrating only officially documented libraries ensures that your email infrastructure remains secure.<\/p>\n<p class=\"has-text-align-center has-background\" style=\"background:linear-gradient(180deg,rgb(238,238,238) 94%,rgb(169,184,195) 100%)\"><strong>Follow us on <a href=\"https:\/\/news.google.com\/publications\/CAAqMggKIixDQklTR3dnTWFoY0tGV041WW1WeWMyVmpkWEpwZEhsdVpYZHpMbU52YlNnQVAB?hl=en-IN&amp;gl=IN&amp;ceid=IN:en\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Google News<\/a>, <a href=\"https:\/\/www.linkedin.com\/company\/cybersecurity-news\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">LinkedIn<\/a>, and <a href=\"https:\/\/x.com\/cyber_press_org\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">X<\/a> for daily cybersecurity updates. <a href=\"https:\/\/cybersecuritynews.com\/contact-us\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Contact us<\/a> to feature your stories.<\/strong><\/p>\n<p>The post <a href=\"https:\/\/cybersecuritynews.com\/fake-postmark-mcp-server\/\">Fake Postmark MCP Server Silently Stole Thousands of Emails With a Single Line of Malicious Code<\/a> appeared first on <a href=\"https:\/\/cybersecuritynews.com\/\">Cyber Security News<\/a>.<\/p>\n<\/div>\n<p> \t<BR><br \/>\n <BR><\/BR><br \/>\n    Florence Nightingale<br \/>\n \t<BR><br \/>\n<BR><\/BR><br \/>\n<a href=\"https:\/\/cybersecuritynews.com\/fake-postmark-mcp-server\/\">Go to cyber-security-news<\/a><br \/>\n \t<BR><br \/>\n <BR><\/BR><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Fake Postmark MCP Server Silently Stole Thousands of Emails With a Single Line of Malicious Code A malicious npm package masquerading as the official Postmark MCP Server has been exfiltrating user emails to an external server.\u00a0 This fake \u201cpostmark-mcp\u201d module, available on npm from versions 1.0.0 through 1.0.15, built trust over 15 incremental releases before [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1636,129,63],"tags":[130],"class_list":["post-7300","post","type-post","status-publish","format-standard","hentry","category-cyber-attack-news","category-cyber-security","category-cyber-security-news","tag-cyber-security-news"],"_links":{"self":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/posts\/7300"}],"collection":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/comments?post=7300"}],"version-history":[{"count":0,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/posts\/7300\/revisions"}],"wp:attachment":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/media?parent=7300"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/categories?post=7300"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/tags?post=7300"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}