Facebook 推出靜態分析工具:Facebook Infer

Facebook 推出了靜態分析工具 Facebook Infer,可以事先找出 AndroidiOS 上的 bug:Open-sourcing Facebook Infer: Identify bugs before you ship

從官方給的操作動畫中就可以看出來怎麼跑了。目前看起來支援三種程式語言,C、Objective-C、Java:

Facebook Infer is a static analysis tool - if you give Infer some Objective-C, Java, or C code, it produces a list of potential bugs.

在 Android 上 (Java) 會找出的類型:

Infer reports null pointer exceptions and resource leaks in Android and Java code.

iOS 上則只找 memory leak:

In addition to this, it reports memory leak problems in iOS and C code.

比較特別的是,這個工具是用 OCaml 寫:

Infer is a static analysis tool for Java, Objective-C and C, written in OCaml.

Rowhammer Bug:攻擊記憶體的值...

GoogleProject Zero 實做 Rowhammer Bug:「Exploiting the DRAM rowhammer bug to gain kernel privileges」。

開頭就很科幻:

“Rowhammer” is a problem with some recent DRAM devices in which repeatedly accessing a row of memory can cause bit flips in adjacent rows.

然後就提到實做了:

We tested a selection of laptops and found that a subset of them exhibited the problem. We built two working privilege escalation exploits that use this effect.

給出了 NaCl sandbox escape 與 Kernel privilege escalation 兩種方式。

這頭快炸了...

jQuery 1.11.2 與 2.1.3 修正 iOS 8 上 Safari 7.1/8 的嚴重 bug

看到 jQuery 官方放出一個特別更新,專門為了 iOS 8 + Safari 7.1/8 的修正:「jQuery 1.11.2 and 2.1.3 Released – Safari Fail-Safe Edition」。

依據「Test failure on iOS 8: child and adjacent -> p#firstp + p」的說明,死在 document.querySelectorAll("p#firstp + p") 這邊,另外以下的 selector 也都掛掉:

p#a + p
p#a ~ p
.b#a ~ [id]
[style]#a ~ p

由於這個用法太基本,讓 jQuery 官方決定在 library 放 workaround 修正這個問題...

NSA 從兩年前就知道 OpenSSL 的 Heartbleed bug...

依據 Bloomberg 的報導,NSA 兩年前就知道 OpenSSLHeartbleed bug 了:「NSA Said to Exploit Heartbleed Bug for Intelligence for Years」。

翻了 GitHub 上的 mirror 記錄,可以發現是在 2012/01/01 commit 進去的:「commit 4817504d069b4c5082161b02a22116ad75f822b1」,幾乎是一開始就知道了?

苦啊...

PostgreSQL 對 security update 的極端作法...

Hacker News 文摘上看到,PostgreSQL 決定對這次的 security update 採取最極端的作法:「Extra security measures for next week's releases」。

包括全面管制 Git repository 公開資訊:官方的 Git repository 將會在正式釋出修正前限制只有 committer 可以存取,並且暫停 GitHub 以及其他 git mirror 權限。

另外 mailing list 也受到管制,包括了 src commit log 以及 document commit log。

信件開頭就提到這次安全性漏洞足以說服 PostgreSQL 的人採取最極端的作法,避免在有修正方案前造成漏洞洩漏出來被使用:

The core committee has decided that one of the security issues due to be fixed next week is sufficiently bad that we need to take extra measures to prevent it from becoming public before packages containing the fix are available. (This is a scenario we've discussed before, but never had to actually implement.)

不過這反而讓人更關注,甚至上了 Hacker News 熱門榜...

用 JavaScript 遠端攻陷 Intel Core2Duo...

Hacker News 上看到了「Intel Core2Duo cpu cache controller bug PoC」,透過 JavaScript 遠端攻擊 Intel Core2Duo,直接突破所有 application & OS 保護機制... exploit 說明裡提到測過 Intel Core 2 Duo T5750Intel Atom N270 這兩顆 CPU。

另外,從 exploit 給的資料中,可以找到 Kris KasperskyHITB 2008 給出來的 PDF:「Remote Code Execution through Intel CPU Bugs」。

居然用 JavaScript 戳...

Update:很像是假的:「http://news.ycombinator.com/item?id=4246338」。

AMD CPU bug 問題...

去年年底時 Matthew DillonDragonFly BSD mailing list 上的說明:「Buildworld loop seg-fault update -- I believe it is hardware」,以及今年三月從 AMD 確認問題「AMD cpu bug update -- AMD confirms! (additional info)」。

可以從 mailing list 上看到他想辦法重製問題的方法 (從兩天才能重製,到小於 60 秒就能重製),讓他覺得最棘手的原因是無法引入工具:

Debugging the issue in userland (and kernelland) is extremely difficult because most debugging mechanisms caused the problem to stop occuring.

當故事看還蠻... 有趣?(當事人大概不這麼覺得)

最近出新版的 Java 7 的 bug...

在「Java 7 Ships With Severe Bug」這邊提到最近出新版的 Java 7 有 bug,在 Solr 的警告文案裡面有提到這三個 bug:

由於有幾個 bug 是在 Java 7 正式釋出的最後階段被找出來,再加上制式流程的關係,即使會爛掉 (產生 SIGSEGV),Oracle 還是無法承諾下個 Update (也就是 u1) 會更新,只能保證在 u2 會更新:「sigsegv on porter stemmer (Lucene, but also otherwise)」。

在「Don’t Use Java 7, For Anything」這篇就更直接了,直接說 Java 7 目前是個不能用的 GA Product:

Don’t use Java 7 for anything (unless maybe you know you don’t have any loops in your java code)

先繼續觀望,目前跑 Cassandra 的機器還是先不要亂動...

Ubuntu x86_64 上 Flash 畫面會閃爍的問題...

這個 bug 只有在某些站才會出現,像是 SlideShare 的投影片一定會閃,InfoQ 也有同樣情況。是 allowTransparency 產生的問題嗎?不清楚...

Ubuntu 目前系統內是使用 10.2 版,換成 10.3 (目前是 beta) 就會正常了,同樣是透過 PPA 就可以安裝:

sudo apt-add-repository ppa:sevenmachines/flash
sudo apt-get update
sudo apt-get install flashplugin64-installer

不過 10.3 對 BBO 有點感冒啊...