查看: 9450|回复: 0

Pygments FontManager._get_nix_font_path Shell注入漏洞

[复制链接]
  • TA的每日心情

    2024-11-13 20:06
  • 签到天数: 1628 天

    [LV.Master]伴坛终老

    发表于 2015-10-5 00:13:22 | 显示全部楼层 |阅读模式
    Platform:python

    Description:
    Pygments FontManager._get_nix_font_path version 1.2.2-2.0.2 suffers from a shell injection vulnerability.

    [Python] 纯文本查看 复制代码
    Shell Injection in Pygments FontManager._get_nix_font_path
     
    Product:    Pygments
    Version:    1.2.2-2.0.2 497:fe62167596bb to 3693:655dbebddc23 Tue Nov 06 17:30:45 2007 +0000 to Aug 21, 2015.
    Website:    [url]http://pygments.org/[/url]
    Bitbucket:  [url]https://bitbucket.org/birkenfeld/pygments-main[/url]
    CVSS Score: 10.0 (AV:N/AC:L/Au:N/C:C/I:C/A:C)
    Discovery: Aug 21, 2015
     
    An unsafe use of string concatenation in a shell string occurs in FontManager. If the developer allows the attacker to choose the font and outputs an image, the attacker can execute any shell command on the remote system. The name variable injected comes from the constructor of FontManager, which is invoked by ImageFormatter from options.
     
    pygments/formatters/img.py:82
     
        def _get_nix_font_path(self, name, style):
            try:
                from commands import getstatusoutput
            except ImportError:
                from subprocess import getstatusoutput
            exit, out = getstatusoutput('fc-list "%s:style=%s" file' %
                                        (name, style))
            if not exit:
                lines = out.splitlines()
                if lines:
                    path = lines[0].strip().strip(':')
                    return path
     
    [url]https://bitbucket.org/birkenfeld/pygments-main/src/655dbebddc23943b8047b3c139c51c22ef18fd91/pygments/formatters/img.py?at=default&fileviewer=file-view-default#img.py-82[/url]
     
    Recommendation
     
    shlex.quote should be used to ensure that an attacker cannot inject commands.
    [url]https://docs.python.org/3/library/shlex.html#shlex.quote[/url]
     
    A pull request has been made since the author did not respond to e-mail, Twitter, or IRC.
    [url]https://bitbucket.org/birkenfeld/pygments-main/pull-requests/501/fix-shell-injection-in/diff[/url]
     
    Regards,
    Javantea
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    指导单位

    江苏省公安厅

    江苏省通信管理局

    浙江省台州刑侦支队

    DEFCON GROUP 86025

    旗下站点

    邮箱系统

    应急响应中心

    红盟安全

    联系我们

    官方QQ群:112851260

    官方邮箱:security#ihonker.org(#改成@)

    官方核心成员

    Archiver|手机版|小黑屋| ( 苏ICP备2021031567号 )

    GMT+8, 2024-11-22 11:52 , Processed in 0.029725 second(s), 12 queries , Gzip On, MemCache On.

    Powered by ihonker.com

    Copyright © 2015-现在.

  • 返回顶部