한 이스라엘 보안 전문가에 의해 타이젠 소스 코드가 제로데이 공격에 취약하고 학부생에 의해 작성된듯한 최악의 코드라고 평가해서 각종 매체에서 떠들썩하다. 얼마나 문제가 있길래 최악의 소스코드라고 얘기하는지 궁금한데 전체 코드를 리뷰하기엔 무리여서 타이젠 git repo 중 프로젝트 하나를 살펴보았다.

profile/tv/apps/native/filebrowser.git

위키리크스에 삼성 스마트 TV 해킹이슈도 있었고 해서 TV 관련한 repo를 선택. 코드만 봐서는 코딩 가이드라인이나 보안 검수가 없는 것 처럼 보인다.

FbContextView.cpp

Buffer Overflow에 취약한 strcpy사용.

bool CContextView::_get_context_details(CExtNameInfo *pInfo, char **path, char **title, char *subtitle, char *subtitle2)
{
    char buf[MAX_LENGTH];
    TSize size;
    double size_mb;
    int type;

    if (!pInfo)
        return false;

    *title = pInfo->Name();
    *path  = pInfo->ThumbnailPath();
    size = pInfo->Size();

    size_mb = (double)size / (1024 * 1024); /* Convert to MB */

    snprintf(buf, sizeof(buf), "%s : %f MB", _(FBR_TEXT_SIZE), size_mb);
    strcpy(subtitle, buf);

    type = pInfo->Type();
    snprintf(buf, sizeof(buf), "%s : %s", _(FBR_TEXT_FORMAT), _(typestr[type]));
    strcpy(subtitle2, buf);

    return true;
}

Popup.cpp

bool 리턴 타입에 NULL 리턴.

bool CPopup::Create(Evas_Object* base)
{
    ASSERT(base);

    if (m)
        return false;

    m = new SPopup;
    if (!m)
        return false;

    Evas_Object *popup, *label, *icon;
    double scale;
    char buf[MAX_LENGTH];

    popup = elm_popup_add(base);
    if (!popup)
        return NULL;

FbBaseView.cpp

pCurrentLayoutId는 코드상에서 사용되지 않는걸로 보이고 Double Pointer에 char타입이라 변수 네이밍에도 문제가 있어 보인다.

struct SFbBaseView {
    Evas_Object *eoWin;
    Evas_Object *eoBase;
    Evas_Object *eoBtnGroup[TOTAL_GROUP_BTNS];
    Evas_Object *eoSelectedBtnGroup;//Evas_Object *c_grpbtn;
    Evas_Object *eoBtnSource;
    Evas_Object *eoBtnSort;

    CCtxPopup   *pCtxPopup;
    CPopup      *pPopup;

    CLayoutMgr     *pLayoutMgr;

    char*          *pCurrentLayoutId;

만일 다른 프로젝트도 이와 비슷한 수준이라면 리팩토링은 절실해 보인다.

References

공유하기 링크
TAG
댓글
  • 프로필사진 나그네 안녕하세요 VLC 한글깨짐 때문에 고민하다가 올리신 파일 받아서 잘 사용했습니다.
    그리고 최신폰으로 바꾸고나서 또 한글깨짐 문제가 발생하길래 생각나서 다시 찾아오게 되었습니다 ㅎㅎ
    그러나 깔리지가 않네요 아쉽습니다.
    하시는일 잘 되시고 항상 행복하길 바랍니다
    참 감사합니다.
    2017.06.20 21:20 신고
  • 프로필사진 비밀댓글입니다 2018.06.02 17:09
댓글쓰기 폼