{"id":50652,"date":"2026-01-07T15:43:38","date_gmt":"2026-01-07T20:43:38","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=50652"},"modified":"2026-01-22T16:52:52","modified_gmt":"2026-01-22T21:52:52","slug":"1password-browser-extension-code-injection","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2026\/01\/07\/1password-browser-extension-code-injection\/","title":{"rendered":"1Password Browser Extension Code Injection"},"content":{"rendered":"<p><a href=\"https:\/\/x.com\/wunderacle\/status\/2003188173468475762\">Claudio Wunder<\/a> (<a href=\"https:\/\/news.ycombinator.com\/item?id=46435061\">Hacker<\/a> <a href=\"https:\/\/news.ycombinator.com\/item?id=46433269\">News<\/a>):<\/p>\n<blockquote cite=\"https:\/\/x.com\/wunderacle\/status\/2003188173468475762\">\n<p>Any Engineer at @1Password here? Your Chrome Extension seems to recently started breaking HTML from certain pages. For example, the <a href=\"https:\/\/nodejs.org\/en\">Node.js website<\/a> code snippets break when 1Password Extension is enabled.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/x.com\/youyuxi\/status\/2005904473332564339\">Evan You<\/a>:<\/p>\n<blockquote cite=\"https:\/\/x.com\/youyuxi\/status\/2005904473332564339\">\n<p>1Password browser extension is injecting <tt>Prism.js<\/tt> <em>globally<\/em> on every page, which then applies its syntax highlighting logic on all <code>&lt;code&gt;<\/code> blocks matching <code>[lang=*]<\/code> regardless of whether it&rsquo;s meant to be compatible, thus breaking original highlighting.<\/p>\n<\/blockquote>\n\n<p>As I&rsquo;ve said, I dislike this whole architecture where you need a browser extension that can read and write to the page in order to enter your password. I would hope that as little code as possible is injected and that it&rsquo;s all been vetted by 1Password, not just pulled down as a dependency.<\/p>\n\n<p><a href=\"https:\/\/x.com\/1Password\/status\/2001330169902952675\">1Password<\/a>:<\/p>\n<blockquote cite=\"https:\/\/x.com\/1Password\/status\/2001330169902952675\">\n<p>We&rsquo;re aware of an issue in recent versions of the 1Password browser extension that can interfere with syntax highlighting on some pages.<\/p>\n<p>The team is actively working on a fix. We don&rsquo;t have a timeline to share yet, but keeping the extension up to date will ensure you receive it once it&rsquo;s available.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/x.com\/RobertBMenke\/status\/2005988748451013078\">Robert Menke<\/a>:<\/p>\n<blockquote cite=\"https:\/\/x.com\/RobertBMenke\/status\/2005988748451013078\">\n<p>Sorry this bug slipped through our release process.  I just raised this issue again in our internal Slack. We are working on getting a fix out.<\/p>\n<p>[&#8230;]<\/p>\n<p>The fix has already been merged into our main branch. We&rsquo;ll be putting out a release with just this fix. I&rsquo;m hoping to have it submitted to the browser extension stores today [December 30].<\/p>\n<\/blockquote>\n\n<p>It&rsquo;s unclear to me whether this is fixed. The <a href=\"https:\/\/releases.1password.com\/mac\/stable\/\">latest Mac version<\/a> still seems to be 8.11.22 from December 9. When I go to the page for the <a href=\"https:\/\/1password.com\/downloads\/browser-extension\">browser extension<\/a> and click &ldquo;what&rsquo;s new&rdquo; it takes me <a href=\"https:\/\/releases.1password.com\/b5x\/\">here<\/a>, which is a release from December 30 that talks about passkeys and then says only:<\/p>\n<blockquote cite=\"https:\/\/releases.1password.com\/b5x\/\"><p>We&rsquo;ve made general improvements and fixed various bugs for a better 1Password experience.<\/p><\/blockquote>\n\n<p>I don&rsquo;t see anything on the <a href=\"https:\/\/www.1password.community\/category\/discuss\/discussions\/announcements\">announcements page<\/a> or <a href=\"https:\/\/x.com\/1Password\">Twitter<\/a>.<\/p>\n\n<p><a href=\"https:\/\/x.com\/film_girl\/status\/2006373227275203060\">Christina Warren<\/a>:<\/p>\n<blockquote cite=\"https:\/\/x.com\/film_girl\/status\/2006373227275203060\">\n<p>I&rsquo;m glad @1Password is taking this seriously now. But this issue was <a href=\"https:\/\/www.1password.community\/discussions\/developers\/re-1password-chrome-extension-is-incorrectly-manipulating--blocks\/165329\">reported on their community forum<\/a> and to their engineers weeks ago in beta and was not prioritized as a fix until it went viral here. Every company is guilty of this kind of triage, but this is a process failure as much as it is a testing one.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/x.com\/ShengSlogar\/status\/2005897930436403632\">sheng<\/a>:<\/p>\n<blockquote cite=\"https:\/\/x.com\/ShengSlogar\/status\/2005897930436403632\">\n<p>really hoping to read a postmortem on this one<\/p>\n<\/blockquote>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2025\/10\/20\/password-manager-browser-extension-clickjacking\/\">Password Manager Browser Extension Clickjacking<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2023\/04\/26\/1password-to-add-telemetry\/\">1Password to Add Telemetry<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2022\/05\/03\/1password-8-for-mac\/\">1Password 8 for Mac<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2021\/09\/24\/ios-safari-extension-1password\/\">iOS Safari Extension: 1Password<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2019\/09\/26\/safari-13-and-extensions\/\">Safari 13 and Extensions<\/a><\/li>\n<\/ul>\n\n<p id=\"id-1password-browser-extension-code-injection-update-2026-01-08\">Update (<a href=\"#1password-browser-extension-code-injection-update-2026-01-08\">2026-01-08<\/a>): <a href=\"https:\/\/mastodon.social\/@pfandrade\/115856138385175253\">Paulo Andrade<\/a>:<\/p>\n<blockquote cite=\"https:\/\/mastodon.social\/@pfandrade\/115856138385175253\">\n<p>One more reason for <a href=\"https:\/\/secrets.app\/blog\/2025\/09\/dumb-extensions\/\">dumb extensions<\/a>. Secrets extension doesn&rsquo;t do anything to the page before it&rsquo;s summoned. And even after that, it doesn&rsquo;t change the DOM in any way (asides from filling input fields).<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/mjtsai.com\/blog\/2026\/01\/07\/1password-browser-extension-code-injection\/#comment-4353982\">VS<\/a>:<\/p>\n<blockquote cite=\"https:\/\/mjtsai.com\/blog\/2026\/01\/07\/1password-browser-extension-code-injection\/#comment-4353982\">\n<p>Apple does make autofill API available&#8230; it&rsquo;s entirely 1P&rsquo;s choice to not use it.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/mastodon.social\/@pfandrade\/115860207910575935\">Paulo Andrade<\/a>:<\/p>\n<blockquote cite=\"https:\/\/mastodon.social\/@pfandrade\/115860207910575935\">\n<p>I&rsquo;d say the API is the preferred way. It works fine, and also works on other native apps.<\/p>\n<\/blockquote>\n\n<p id=\"id-1password-browser-extension-code-injection-update-2026-01-22\">Update (<a href=\"#1password-browser-extension-code-injection-update-2026-01-22\">2026-01-22<\/a>): It looks like the fix is in the <a href=\"https:\/\/releases.1password.com\/b5x\/stable\/\">January 19th release<\/a>, but the release notes downplay it as just a display issue:<\/p>\n<blockquote cite=\"https:\/\/releases.1password.com\/b5x\/stable\/\">\n<p>We&rsquo;ve fixed an issue where the 1Password extension could break syntax highlighting for code blocks on some websites.<\/p>\n<\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Claudio Wunder (Hacker News): Any Engineer at @1Password here? Your Chrome Extension seems to recently started breaking HTML from certain pages. For example, the Node.js website code snippets break when 1Password Extension is enabled. Evan You: 1Password browser extension is injecting Prism.js globally on every page, which then applies its syntax highlighting logic on all [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2026-01-07T20:43:43Z","apple_news_api_id":"52222fc0-5dd9-4dc3-a6d9-94bb9ec6eb7c","apple_news_api_modified_at":"2026-01-22T20:01:20Z","apple_news_api_revision":"AAAAAAAAAAAAAAAAAAAAAQ==","apple_news_api_share_url":"https:\/\/apple.news\/AUiIvwF3ZTcOm2ZS7nsbrfA","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[2],"tags":[284,131,346,30,32,2742,981,2246],"class_list":["post-50652","post","type-post","status-publish","format-standard","hentry","category-technology","tag-1password","tag-bug","tag-javascript","tag-mac","tag-macapp","tag-macos-tahoe-26","tag-passwords","tag-safari-extensions"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/50652","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=50652"}],"version-history":[{"count":5,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/50652\/revisions"}],"predecessor-version":[{"id":50787,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/50652\/revisions\/50787"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=50652"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=50652"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=50652"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}