安全研究

安全漏洞
RubyGems karteek-docsplit 'text_extractor.rb'远程命令执行漏洞

发布日期:2013-04-08
更新日期:2013-04-09

受影响系统:
rubygems karteek-docsplit 0.5.4
描述:
BUGTRAQ  ID: 58931
CVE(CAN) ID: CVE-2013-1933

karteek-docsplit是命令行工具和分割文档的Ruby库。

karteek-docsplit 0.5.4及其他版本没有过滤输入的shell元字符。攻击者通过构造含有shell字符的文件名的文件,并诱使用户提取该文件,则可导致在受影响应用上下文中执行任意命令。

问题代码:

---------------------------------------------------------------------------
./karteek-docsplit-0.5.4/lib/docsplit/text_extractor.rb

59     def extract_from_ocr(pdf, pages)
60       tempdir = Dir.mktmpdir
61       base_path = File.join(@output, @pdf_name)
62       if pages
63         pages.each do |page|
64           tiff = "{tempdir}/{ () pdf_name}{page} tif"
65           file = "{basepath}{page}"
66           run "MAGICKTMPDIR={tempdir} OMP_NUM_THREADS=2 gm convert -despeckle +adjoin #{MEMORY_ARGS} #{OCR_FLAGS} {pdf}[{page -
1}] #{tiff} 2>&1"
67           run "tesseract #{tiff} {file} -l eng 2>&1"
68           clean_text(file + '.txt') if @clean_ocr
69           FileUtils.remove_entry_secure tiff
70         end
71       else
72         tiff = "{tempdir}/{ () pdf_name} tif"
73         run "MAGICK_TMPDIR={tempdir} OMP_NUM_THREADS=2 gm convert -despeckle #{MEMORY_ARGS} #{OCR_FLAGS} #{pdf} #{tiff}
2>&1"
74         run "tesseract #{tiff} #{base_path} -l eng 2>&1"
75         clean_text(base_path + '.txt') if @clean_ocr
76       end

Run is defined as:

94     def run(command)
95       result = `#{command}`
96       raise ExtractionFailed, result if $? != 0
97       result
98     end
---------------------------------------------------------------------------


<*来源:Larry W. Cashdollar (lwc@vapid.dhs.org
  
  链接:http://seclists.org/oss-sec/2013/q2/38
*>

建议:
厂商补丁:

rubygems
--------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

https://rubygems.org/gems/karteek-docsplit

浏览次数:4091
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障