This file is indexed.

/usr/lib/cgi-bin/dhelp_fetcher is in dhelp 0.6.20+nmu1.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#!/usr/bin/ruby1.8 -w

require 'cgi'
require 'erb'
require 'gettext'
require 'zlib'

require 'dhelp'

MIMETYPES_FILE = '/etc/mime.types'
ERROR_TEMPLATE = '/usr/share/dhelp/fetcher_error.rhtml'


def error(message)
  print "Content-Type: text/html\n\n"

  tmpl = ERB.new(File.read(ERROR_TEMPLATE))
  @message = message
  puts tmpl.result(binding)
  exit 1
end


def _(message)
  GetText.bindtextdomain('dhelp')
  GetText._(message)
end


def content_type(path)
  path =~ /\.([^.]+)$/
  ext = $1
  # Search in the mime.types file
  File.readlines(MIMETYPES_FILE).each do |line|
    line =~ /^(\S+)\s+(.*)/
    mime, exts = $1, ($2 || "").split(/\s+/)
    return mime if exts.include? ext
  end
  return "text/plain"
end



cgi = CGI.new
file = cgi.params['file'].first

# Search for the file in the doc-base database
if file.kind_of? String
  db = Dhelp::DocDirDatabase.open
  begin
    doc_id, title = db.info_for_path(File.dirname(file))
  rescue Dhelp::KeyNotFoundError
    error("I can't find #{file} in the doc-base documentation")
  end

  if not File.readable? file
    error("I can't read file '#{file}'. Maybe the package containing it was uninstalled?")
  end


  # Everything is fine, return the document

  # HTML pages are handled as redirections if they're visible (to avoid
  # problems with relative links)
  if file =~ Regexp.new('/usr/share(/doc/.*\\.html?)$')
    url = $1
    cgi.out("Status" => 302,
            "Location" => url) { "" }
    exit 0
  end

  # If it's compressed, uncompress first
  if file =~ /\.gz$/
    print "Content-Type: #{content_type(file.sub(/\.gz$/, ''))}\n\n"
    Zlib::GzipReader.open(file) {|gz|
      print gz.read
    }
  else
    print "Content-Type: #{content_type(file)}\n\n"
    print File.read(file)
  end
else
  error("You have to specify a parameter 'file'")
end