Lazybird 瀏覽器計畫在 2026 夏天推出 Alpha 版

在「Welcome to Ladybird, a truly independent web browser (ladybird.org)」這邊看到的,指到官網 Ladybird 上。

最主要的資訊應該是這個日期,目前計畫是 2026 夏天在 LinuxmacOS 上推出 alpha 版:

We are targeting Summer 2026 for a first Alpha version on Linux and macOS. This will be aimed at developers and early adopters.

也就是大約再兩年,看起來得花不少時間開發... 畢竟是要完全獨立開發不使用現有瀏覽器的 code。

AWS Direct Connect 開始提供 400Gbps 的選擇

AWS Direct Connect 開始有 400Gbps 的選擇了:「AWS Direct Connect announces native 400 Gbps Dedicated Connections at select locations」。

依照裡面的 AWS Direct Connect Locations 連結可以知道目前開放的地點都在北美:

  • CoreSite VA1, Reston, VA
  • Equinix DC2/DC11, Ashburn, VA
  • CoreSite SV4, Santa Clara, CA
  • Equinix SV5, San Jose, CA

Terabit Ethernet 這邊翻400Gbps 的部分,是 2017 年的標準,另外有些比較長距離的選擇是後續推出來的。

這樣算是給了一些需要穩定大流量的企業的選擇,不然 internet 集縮比的問題造成線路頻寬時高時低。

話說 Direct Connect 在台灣的兩個點目前都還是掛到東京區 (ap-northeast-1) 上,後續台北 region 開點後不知道是會支援多個 region (i.e. 可以掛東京,也可以掛台北),還是會另外找機房接?

regreSSHion:OpenSSH RCE

人在機場準備要回台灣,在 Hacker News 上看到「RegreSSHion: RCE in OpenSSH's server, on glibc-based Linux systems (qualys.com)」這個整個被抽醒,Qualys 的 security advisory 在這:「regreSSHion: RCE in OpenSSH's server, on glibc-based Linux systems (CVE-2024-6387)」。

剛剛看 Ubuntu 套件已經更新了,請儘快更新...

OpenSSH 官方的「release-9.8」內有提到這是 race condition 造成的問題,在 32-bit 的 lab 環境上面大約六到八小時可以打進去,64-bit 環境理論上應該也是可行的,但時間還沒有被驗證:

Successful exploitation has been demonstrated on 32-bit Linux/glibc systems with ASLR. Under lab conditions, the attack requires on average 6-8 hours of continuous connections up to the maximum the server will accept. Exploitation on 64-bit systems is believed to be possible but has not been demonstrated at this time. It's likely that these attacks will be improved upon.

在 security advisory 裡面有提到更細節的部分,解釋了 race condition 的攻擊對象,以及為什麼 OpenBSD 沒中獎:

This vulnerability is exploitable remotely on glibc-based Linux systems, where syslog() itself calls async-signal-unsafe functions (for example, malloc() and free()): an unauthenticated remote code execution as root, because it affects sshd's privileged code, which is not sandboxed and runs with full privileges. We have not investigated any other libc or operating system; but OpenBSD is notably not vulnerable, because its SIGALRM handler calls syslog_r(), an async-signal-safer version of syslog() that was invented by OpenBSD in 2001.

這幾天應該會有更多測試出來,另外 Hacker News 上有人提到上個月 OpenSSH 打算內建阻擋系統的事情,有在猜測跟這個 security advisory 有關?(參考「OpenSSH 要內建阻擋系統了」)...

Anyway,後續可以再研究看看,但現在先趕緊把手上機器更新一輪比較要緊...

OpenDNS 停止在法國的 DNS Resolver 服務

前陣子法國法院要求在 DNS 層阻擋的事情 (參考「Google Public DNS 接受法國法院的阻擋要求」) 有新的進度了,OpenDNS 直接停止在法國的 DNS Resolver 服務:「OpenDNS Suspends Service in France Due to Canal+ Piracy Blocking Order」。

不是把法國當地的服務停掉改由其他地區的 anycast 提供服務,而是在服務本身上面直接阻擋法國的使用者:

Reports of problems with the OpenDNS service seemed to begin on Friday, and it didn’t take long to discover the cause. The technical issues were isolated to France and apparently parts of Portugal too, with an explanation having appeared on the OpenDNS website, perhaps as early as Thursday evening.

網站上的公告則是:

Effective June 28, 2024: Due to a court order in France issued under Article L.333-10 of the French Sport code and a court order in Portugal issued under Article 210-G(3) of the Portuguese Copyright Code, the OpenDNS service is not currently available to users in France and certain French territories and in Portugal. We apologize for the inconvenience.

這下衝突升級了...

polyfill.io 被放 malicious code 的事件

台灣的圈子蠻多人是從「請儘速遠離 cdn.polyfill.io 之惡意程式碼淺析」這邊看到的,一些 code 相關的分析部分可以移駕過去看。裡面提到的 GitHub 上面 alitonium 所寫的 comment 蠻值得讀一下 (第一次點的時候會出現 GitHub 的警告,再點一次應該就會跳到正確的 comment 上)。

polyfill.js 算是老專案了,從 https://github.com/polyfillpolyfill/polyfill-service/graphs/contributors 這邊可以看到是 2013 年開始有記錄,主要是針對舊的瀏覽器 (像是 IE11),透過 javascript 的方式補上對應的功能。

現在的瀏覽器都是一直在更新,大多數的情況不太需要 polyfill 了,但畢竟很多舊的案子還在用,在這次 domain 被中國公司拿走後,Cloudflare 在今年 2024/2/29 就有先寫一篇算是預警的文章了:「polyfill.io now available on cdnjs: reduce your supply chain risk」,不過這種事情都是還沒發生前大家不會有太多重視,接下來就是 GitHub 上面的討論,然後是真的被動手加 malicious code 進去後,有人發現的討論。

後續大家都被迫要開始處理這件事情,GitHub 的作法看起來沒什麼問題:先標注 malicious repository 但是還是讓人可以進去翻歷史資料與討論。

不過 Cloudflare 這邊動作有點大,直接主動幫 CDN 客戶過濾了:「Automatically replacing polyfill.io links with Cloudflare’s mirror for a safer Internet」,這篇在 Hacker News 上也有討論:「Cloudflare automatically fixes Polyfill.io for free sites (cloudflare.com)」。

這個「越界」有點多,這應該也是直接讓 CEO Matthew Prince 出來掛文章作者的原因。這次 Cloudflare 主動做的事情包括了將免費的客戶預設開啟過濾,而付費的客戶則不會主動開啟,但提供一鍵開關:

Any website on the free plan has this feature automatically activated now. Websites on any paid plan can turn on this feature with a single click.

另外也允許所有客戶關掉這個保護:

All customers can turn off the feature at any time.

所以後續就會有另外一條大支線討論:在使用者沒有事前同意的情況下,以「安全」為名主動更改使用者頁面上的東西,這件事情是不是可以接受?如果以「安全」為名可以接受,為什麼是免費的先動,付費的卻不動?雖然我猜 Cloudflare 會裝死到底就是了...

Chrome 停止信任 Entrust 憑證的計畫

Hacker News 上看到「Entrust Certificate Distrust (googleblog.com)」這個討論,Google 決定要停止信任 Entrust 頒發的憑證:「Sustaining Digital Certificate Security - Entrust Certificate Distrust」。

快速翻了一下 Google 列出來在 Mozilla Bug List 上面的記錄 (在這裡),應該是出太多包,而且有些包給的解釋又不能說明出包的理由?

我拉了一下 Let's Encrypt 的情況,可以看到是兩種不同的情境:「這邊」,或是 GlobalSign:「這邊」。

目前的計畫是在下個 stable 版開始設限 (現在 stable 是 126,目前公告 127 開始擋),但給了四個月的期限,仍然會認 Entrust 在 2024/10/31 前發的憑證:

TLS server authentication certificates validating to the following Entrust roots whose earliest Signed Certificate Timestamp (SCT) is dated after October 31, 2024, will no longer be trusted by default.

因為有 Certificate Transparency (CT) 的關係,所有的簽署資料都會是公開可以查的,所以 Hacker News 上面有人整理出來有受到影響的網站... 看起來是把抓回來的資料丟到 ClickHouse 上分析:「SELECT rank, domain, certificate_issuer FROM minicrawl_processed WHERE startsWith(certificate_issuer, 'Entrust') AND date = today() ORDER BY rank::UInt32」。

裡面可以看到許多知名的網站 (畢竟還是 Entrust),這點從「Market share trends for SSL certificate authorities」這邊可以看得出來,雖然跟前面幾家比起來算小,但至少還是在榜上。

來等看看 MozillaApple 的動作,會不會有更嚴格的 distrust 的行為 (提前?),畢竟讓他再做四個月的生意也是很危險?

VoWiFi 會因為沒有 IPsec 穿透力而無法啟動的問題

現在人在日本,加上前陣子因為台灣之星的舊 SIM 卡不支援 VoLTE,6/30 要關閉 3G 網路,就找時間去換成台灣大哥大的了,除了 VoLTE 外,台星之前一直不支援 VoWiFi,這次換到台哥大以後也順便可以用了。

換完以後在家裡可以看到會自動跳 VoWiFi 確認可以用,這次到日本剛好可以用他接台灣的電話 (就不用付漫遊費用了),但發現在飯店的網路可以切到 VoWiFi,可是用我自己的分享機 (上面是樂天的 SIM 卡) 卻無法的情況。

翻了維基百科上面「Wi-Fi calling」的說明可以看到用的技術:

The service is dependent on IMS, IPsec, IWLAN and ePDG.

這邊看到 IPsec 就知道不太妙了,這東西在 NAT 上面需要額外「照顧」才會通 (IPsec passthrough),在這種情況下需要 500/udp 與 4500/udp,而透過搜尋引擎查了可以發現有電信商會擋... 大概知道發生什麼事情了 @_@

讓 Byobu 的 status bar 使用 tmux multiline

tmux 在 2.9 的時候支援了 multiline,從 CHANGES 裡面可以看到說明:

Extend the #[] style syntax and use that together with previous format changes to allow the status line to be entirely configured with a single option.

Now that it is possible to configure their content, enable the existing code that lets the status line be multiple lines in height. The status option can now take a value of 2, 3, 4 or 5 (as well as the previous on or off) to configure more than one line. The new status-format array option configures the format of each line, the default just references the existing status-* options, although some of the more obscure status options may be eliminated in time.

Additions to the #[] syntax are: "align" to specify alignment (left, centre, right), "list" for the window list and "range" to configure ranges of text for the mouse bindings.

The "align" keyword can also be used to specify alignment of entries in tree mode and the pane status lines.

我桌機的螢幕是打直的,所以會希望拆成兩行儘量把 tmux 的 window 的資訊都顯示出來,不過我這邊還是希望保留 Byobu 的樣式,所以就翻到「Making byobu's (using tmux) status bar multi-line results in "session" and the date/time disappearing」這篇,作者貼了一個算是不完整的範例,看起來沒辦法直接用,所以還是得想辦法找出 Byobu 預設的 status-format[0]

後來找到的方法是在 Byobu 跑起來的環境裡面跑這個:

tmux display-message -p "#{status-format[0]}"

就會發現 status-format[0] 有夠大包... 接著把裡面的值拆開放到兩行,最後變成這樣 (這是從 Ubuntu 22.04 裡面的 Byobu 拆出來的):

source $BYOBU_PREFIX/share/byobu/profiles/tmux
set-option -g status 2
set -g status-format[0] '#[align=left range=left #{status-left-style}]#[push-default]#{T;=/#{status-left-length}:status-left}#[pop-default]#[norange default]#[list=on align=#{status-justify}]#[list=left-marker]<#[list=right-marker]>#[list=on]#{W:#[range=window|#{window_index} #{window-status-style}#{?#{&&:#{window_last_flag},#{!=:#{window-status-last-style},default}}, #{window-status-last-style},}#{?#{&&:#{window_bell_flag},#{!=:#{window-status-bell-style},default}}, #{window-status-bell-style},#{?#{&&:#{||:#{window_activity_flag},#{window_silence_flag}},#{!=:#{window-status-activity-style},default}}, #{window-status-activity-style},}}]#[push-default]#{T:window-status-format}#[pop-default]#[norange default]#{?window_end_flag,,#{window-status-separator}},#[range=window|#{window_index} list=focus #{?#{!=:#{window-status-current-style},default},#{window-status-current-style},#{window-status-style}}#{?#{&&:#{window_last_flag},#{!=:#{window-status-last-style},default}}, #{window-status-last-style},}#{?#{&&:#{window_bell_flag},#{!=:#{window-status-bell-style},default}}, #{window-status-bell-style},#{?#{&&:#{||:#{window_activity_flag},#{window_silence_flag}},#{!=:#{window-status-activity-style},default}}, #{window-status-activity-style},}}]#[push-default]#{T:window-status-current-format}#[pop-default]#[norange list=on default]#{?window_end_flag,,#{window-status-separator}}}'
set -g status-format[1] '#[align=right]#(byobu-status tmux_right)'$BYOBU_DATE$BYOBU_TIME

我要的效果就出來了:

美國政府 NLRB 給出競業及禁止挖角條款違法的判決

在「NLRB judge declares non-compete clause is an unfair labor practice (nlrbedge.com)」這邊看到的,原始文章是:「In First Case of its Kind, NLRB Judge Declares Non-Compete Clause Is an Unfair Labor Practice」。

NLRB (National Labor Relations Board) 這次是針對 J.O. Mory 的判決,原始判決本來想連結到 NLRB 的網站上,但發現現在連不上,先給這份好了:「09031d4583d765f7.pdf」。

裡面有兩個面向的判決,一個是競業的部分,另外一個是禁挖的部分。細節可以直接看原文,或是直接丟 Google Translate 或是叫 ChatGPT & Gemini 翻譯都可以。

競業條款的部分不算太意外,因為整個州政府與聯邦政府都在修法大幅限制企業在合約上面可以設定的競業條款,不再讓自由市場機制決定勞工的工作權益 (通常是弱勢方)。

禁挖條款的部分是這次看到覺得比較新鮮的,認定違法的原因與禁業的部分類似,都是以會影響勞工的工作權益而宣告違法。

這塊應該是進行式,這幾年應該還是可以看到不同的判決出現...