wnagzihxa1n

wnagzihxa1n

iOS/Android Security

© 2021

大土豆安全笔记 2020.04.12

上周周末在家里跟朱老师远程技术互相分享了一波,感谢大佬给我讲的ROOT技术,学到了很多,感觉技术又进步了

这周周末又跟唐师傅,椰子师傅,汪师傅学习了一波甲方安全,涨了一大波知识,只可惜ZOOM一直掉线,下次换个工具

剩下的时间就是仔细学习朱老师给我的资料,看了CVE-2017-8890和CVE-2017-10661

这两个漏洞网络上有大量的分析调试利用文章,啥时候能自己挖一波提权漏洞啊?

CVE-2017-10661是一个条件竞争漏洞

补丁如下

  • https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=1e38da300e1e395a15048b0af1e5305bd91402f6

补丁描述

timerfd: Protect the might cancel mechanism proper
The handling of the might_cancel queueing is not properly protected, so parallel operations on the file descriptor can race with each other and lead to list corruptions or use after free.
Protect the context for these operations with a seperate lock.
The wait queue lock cannot be reused for this because that would create a lock inversion scenario vs. the cancel lock. Replacing might_cancel with an atomic (atomic_t or atomic bit) does not help either because it still can race vs. the actual list operation.

简单翻译就是:对might_cancel进行判断的时候,由于没有锁保护,会导致条件竞争漏洞

static void timerfd_setup_cancel(struct timerfd_ctx *ctx, int flags)
{
    if ((ctx->clockid == CLOCK_REALTIME ||
        ctx->clockid == CLOCK_REALTIME_ALARM) &&
        (flags & TFD_TIMER_ABSTIME) && (flags & TFD_TIMER_CANCEL_ON_SET)) {
        if (!ctx->might_cancel) { // <--
            ctx->might_cancel = true;
            spin_lock(&cancel_lock);
            list_add_rcu(&ctx->clist, &cancel_list);
            spin_unlock(&cancel_lock);
        }
    } else if (ctx->might_cancel) {
        timerfd_remove_cancel(ctx);
    }
}

比如两个线程同时进来,A线程先通过判断进入了if,但是还没执行到赋值为true的指令,然后B线程也进来了,那么就会造成执行两次if分支块的指令,最后会造成两次将ctx加入到cancel_list,往后就是链表的利用了

剩下的时间其实一直在看书,一共是三本书:Linux驱动,Android逆向和iOS逆向

慌的一逼,啥都不会,只能抓紧时间看书学习知识

人往高处走,水往低处流,至于土豆,一个坑,不挪窝:)

以下跟技术无关

发个牢骚:在甲方搞业务安全真的是,一言难尽,有些业务线白天写代码,晚上八九点才提测,每次都说着急上线,对付这样的业务线我有个好办法,凌晨的时候给他们报一个漏洞,修去吧:)

想骂人,想想还是算了,毕竟我这十来个读者里面不少还是学生,祖国未来的花朵要在阳光正能量的环境下成长

还有件事,今天看到一个安全团队(团伙?)写了一篇漏洞分析,里面的描述是”xxx团队yyy小组的zzz师傅分析”,我觉得转载其他人的文章互相客气一下尊称一声师傅,自己管自己人叫师傅,我突然有一种进了澡堂子的感觉,大家不要对号入座,就当个乐看