Benign gem 1,521,743 installs download unavailable

padrino-cache 0.11.1

legitimate caching library

“Caching support for memcached, page and fragment”

Ruby recursively deletes a directory treeRuby subshell command execution
SHA-2562f3a2c15169d0a826930ac74b5e90f99f9f8d5cc85a6debcb594e5be1a6fbdad

Evidence

Ruby dynamically invokes a method with send file.rb · lines 41–44
41:37… pond_to?(:binread) ? :binread : :read
42 contents = ::File.send(read_method, path_for_key(key))
43 expires_in, body = contents.split("\n", 2)
44 expires_in = expires_ …
Ruby recursively deletes a directory tree file.rb · lines 95–104
95:8… def delete(key)
96 init
97 Array(key).each { |k| FileUtils.rm_rf(path_for_key(k)) }
98 end
99
⋯5 lines
Ruby creates a directory tree file.rb · lines 117–127
117:59…
118 end
119
120 # @api private
121 def init
122 FileUtils.mkdir_p(@root) unless ::File.exist?(@root)
123 end
124 end # File
125 end # Store
126 end # Cache
127end # Padrino
Ruby gemspec assigns package name padrino-cache.gemspec · lines 1–9
1#!/usr/bin/env gem build
2# encoding: utf-8
3
4require File.expand_path("../../padrino-core/lib/padrino-core/version.rb", __FILE__)
5
6Gem::Specification.new do |s|
7 s.name = "padrino-cache"
8 s.rubyforge_project = "padrino-cache"
9 s.authors = ["Padrino Team", "Nathan Esquenazi", "Davide D'Agostino", …
Code embeds cleartext HTTP URL literal padrino-cache.gemspec · lines 10–15
10:7… ail = "[email protected]"
11 s.summary = "Page and fragment caching for Padrino"
12 s.homepage = "http://www.padrinorb.com"
13 s.description = "Caching support for memcached, page and fragment"
14 s.required_rubygems_version = ">= 1.3.6"
15 s.version = …

No evidence locations were recorded for this file. Raw result

Keyboard shortcuts on this page: j for the next sample, k for the previous one, x to go back to the feed, d to download the original bytes, r to re-queue the sample for analysis.