codesake-dawn 1.1.0.rc2 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/Changelog.md +5 -2
- data/KnowledgeBase.md +47 -31
- data/README.md +8 -3
- data/Rakefile +1 -1
- data/Roadmap.md +22 -59
- data/checksum/codesake-dawn-1.1.0.gem.sha512 +1 -0
- data/doc/dawn_1_1_announcement.md +67 -0
- data/lib/codesake/dawn/kb/cve_2014_2525.rb +61 -0
- data/lib/codesake/dawn/kb/cve_2014_2538.rb +4 -4
- data/lib/codesake/dawn/kb/owasp_ror_cheatsheet/session_stored_in_database.rb +1 -1
- data/lib/codesake/dawn/knowledge_base.rb +89 -86
- data/lib/codesake/dawn/version.rb +2 -2
- data/spec/lib/dawn/codesake_knowledgebase_spec.rb +5 -0
- data/spec/lib/kb/cve_2014_2538_spec.rb +4 -5
- metadata +7 -4
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a6587e023ec76144d8c6a48e1b8130cee3a99b9d
|
4
|
+
data.tar.gz: 149559e865d2425e786fe587054d49a41d8fb69c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cadec13f2cdc11c1d3934b1da01a8eec2d2c4cac14cb4cd0b638601af3a46a7a493884993e4706adccbf41f50c5f7e92aa65271c0f0bc0ad83d710d8a0f9d171
|
7
|
+
data.tar.gz: 5f75eba4b560ed3cff6139ba2b42b0d0428933257d4664657510575bbd44af746ea1afa2e831026fbda7d6e31b66213ba3f0dfa003c5cab39f5371809d5f02c3
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/Changelog.md
CHANGED
@@ -5,9 +5,9 @@ It supports [Sinatra](http://www.sinatrarb.com),
|
|
5
5
|
[Padrino](http://www.padrinorb.com) and [Ruby on Rails](http://rubyonrails.org)
|
6
6
|
frameworks.
|
7
7
|
|
8
|
-
_latest update:
|
8
|
+
_latest update: Mon Mar 31 09:05:57 CEST 2014_
|
9
9
|
|
10
|
-
## Version 1.1.0 - codename: Lightning McQueen (2014-
|
10
|
+
## Version 1.1.0 - codename: Lightning McQueen (2014-04-04)
|
11
11
|
|
12
12
|
* Added a check for CVE-2011-5036
|
13
13
|
* Added a check for CVE-2012-6109
|
@@ -24,6 +24,7 @@ _latest update: Sun Mar 23 23:06:38 CET 2014_
|
|
24
24
|
* Added a check for CVE-2013-4593
|
25
25
|
* Added a check for CVE-2013-5671
|
26
26
|
* Added a check for CVE-2014-0080
|
27
|
+
* Added a check for CVE-2014-2525
|
27
28
|
* Added remaining compliance checks against Owasp Ruby on Rails cheatsheet.
|
28
29
|
Some other checks in the cheatsheet can't be turned into a Codesake::Dawn
|
29
30
|
test, so all the cheatsheet content is covered since now.
|
@@ -80,6 +81,8 @@ _latest update: Sun Mar 23 23:06:38 CET 2014_
|
|
80
81
|
|
81
82
|
## Version 1.0.6 - codename: Lightning McQueen (2014-03-23)
|
82
83
|
|
84
|
+
## Version 1.0.6 - codename: Lightning McQueen (2014-03-23)
|
85
|
+
|
83
86
|
* Added a check for CVE-2014-2538
|
84
87
|
|
85
88
|
## Version 1.0.5 - codename: Lightning McQueen (2014-03-18)
|
data/KnowledgeBase.md
CHANGED
@@ -1,37 +1,8 @@
|
|
1
1
|
# Codesake::Dawn Knowledge base
|
2
2
|
|
3
|
-
The knowledge base library for Codesake::Dawn version 1.0
|
3
|
+
The knowledge base library for Codesake::Dawn version 1.1.0 contains 171 security checks.
|
4
4
|
---
|
5
|
-
* Not revised code: Analyzing comments, it seems your code is waiting from some review from you. Please consider take action before putting it in production.
|
6
|
-
This check will analyze the source code looking for the following patterns: XXX, TO_CHECK, CHECKME, CHECK and FIXME
|
7
|
-
* Owasp Ror CheatSheet: Command Injection: Ruby offers a function called "eval" which will dynamically build new Ruby code based on Strings. It also has a number of ways to call system commands. While the power of these commands is quite useful, extreme care should be taken when using them in a Rails based application. Usually, its just a bad idea. If need be, a whitelist of possible values should be used and any input should be validated as thoroughly as possible. The Ruby Security Reviewer's Guide has a section on injection and there are a number of OWASP references for it, starting at the top: Command Injection.
|
8
|
-
* Owasp Ror CheatSheet: Cross Site Request Forgery: Ruby on Rails has specific, built in support for CSRF tokens. To enable it, or ensure that it is enabled, find the base ApplicationController and look for the protect_from_forgery directive. Note that by default Rails does not provide CSRF protection for any HTTP GET request.
|
9
|
-
* Owasp Ror CheatSheet: Session management: By default, Ruby on Rails uses a Cookie based session store. What that means is that unless you change something, the session will not expire on the server. That means that some default applications may be vulnerable to replay attacks. It also means that sensitive information should never be put in the session.
|
10
|
-
* Owasp Ror CheatSheet: Mass Assignement in model: Although the major issue with Mass Assignment has been fixed by default in base Rails specifically when generating new projects, it still applies to older and upgraded projects so it is important to understand the issue and to ensure that only attributes that are intended to be modifiable are exposed.
|
11
|
-
* Owasp Ror CheatSheet: Security Related Headers: To set a header value, simply access the response.headers object as a hash inside your controller (often in a before/after_filter). Rails 4 provides the "default_headers" functionality that will automatically apply the values supplied. This works for most headers in almost all cases.
|
12
|
-
* Owasp Ror CheatSheet: Check for safe redirect and forward: Web applications often require the ability to dynamically redirect users based
|
13
|
-
on client-supplied data. To clarify, dynamic redirection usually entails the
|
14
|
-
client including a URL in a parameter within a request to the application. Once
|
15
|
-
received by the application, the user is redirected to the URL specified in the
|
16
|
-
request.
|
17
|
-
|
18
|
-
For example: http://www.example.com/redirect?url=http://www.example_commerce_site.com/checkout
|
19
|
-
|
20
|
-
The above request would redirect the user to http://www.example.com/checkout.
|
21
|
-
|
22
|
-
The security concern associated with this functionality is leveraging an
|
23
|
-
organization's trusted brand to phish users and trick them into visiting a
|
24
|
-
malicious site, in our example, "badhacker.com".
|
25
|
-
|
26
|
-
Example: http://www.example.com/redirect?url=http://badhacker.com
|
27
|
-
|
28
|
-
The most basic, but restrictive protection is to use the :only_path option.
|
29
|
-
Setting this to true will essentially strip out any host information.
|
30
|
-
* Owasp Ror CheatSheet: Sensitive Files: Many Ruby on Rails apps are open source and hosted on publicly available source code repositories. Whether that is the case or the code is committed to a corporate source control system, there are certain files that should be either excluded or carefully managed.
|
31
5
|
* Simple Form XSS - 20131129: There is a XSS vulnerability on Simple Form's label, hint and error options. When Simple Form creates a label, hint or error message it marks the text as being HTML safe, even though it may contain HTML tags. In applications where the text of these helpers can be provided by the users, malicious values can be provided and Simple Form will mark it as safe.
|
32
|
-
* Nokogiri - Denial of service - 20131217: There is a vulnerability in Nokogiri when using JRuby where the parser can enter an infinite loop and exhaust the process memory. Nokogiri users on JRuby using the native Java extension. Attackers can send XML documents with carefully crafted documents which can cause the XML processor to enter an infinite loop, causing the server to run out of memory and crash.
|
33
|
-
* Nokogiri - Entity expasion denial of service - 20131217: There is an entity expansion vulnerability in Nokogiri when using JRuby. Nokogiri users on JRuby using the native Java extension. Attackers can send
|
34
|
-
XML documents with carefully crafted entity expansion strings which can cause the server to run out of memory and crash.
|
35
6
|
* [CVE-2004-0755](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2004-0755): The FileStore capability in CGI::Session for Ruby before 1.8.1, and possibly PStore, creates files with insecure permissions, which can allow local users to steal session information and hijack sessions.
|
36
7
|
* [CVE-2004-0983](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2004-0983): The CGI module in Ruby 1.6 before 1.6.8, and 1.8 before 1.8.2, allows remote attackers to cause a denial of service (infinite loop and CPU consumption) via a certain HTTP request.
|
37
8
|
* [CVE-2005-1992](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2005-1992): The XMLRPC server in utils.rb for the ruby library (libruby) 1.8 sets an invalid default value that prevents "security protection" using handlers, which allows remote attackers to execute arbitrary commands.
|
@@ -91,6 +62,7 @@ XML documents with carefully crafted entity expansion strings which can cause th
|
|
91
62
|
* [CVE-2011-3187](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-3187): The to_s method in actionpack/lib/action_dispatch/middleware/remote_ip.rb in Ruby on Rails 3.0.5 does not validate the X-Forwarded-For header in requests from IP addresses on a Class C network, which might allow remote attackers to inject arbitrary text into log files or bypass intended address parsing via a crafted header.
|
92
63
|
* [CVE-2011-4319](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-4319): Cross-site scripting (XSS) vulnerability in the i18n translations helper method in Ruby on Rails 3.0.x before 3.0.11 and 3.1.x before 3.1.2, and the rails_xss plugin in Ruby on Rails 2.3.x, allows remote attackers to inject arbitrary web script or HTML via vectors related to a translations string whose name ends with an "html" substring.
|
93
64
|
* [CVE-2011-4815](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-4815): Ruby (aka CRuby) before 1.8.7-p357 computes hash values without restricting the ability to trigger hash collisions predictably, which allows context-dependent attackers to cause a denial of service (CPU consumption) via crafted input to an application that maintains a hash table.
|
65
|
+
* [CVE-2011-5036](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-5036): Rack before 1.1.3, 1.2.x before 1.2.5, and 1.3.x before 1.3.6 computes hash values for form parameters without restricting the ability to trigger hash collisions predictably, which allows remote attackers to cause a denial of service (CPU consumption) by sending many crafted parameters.
|
94
66
|
* [CVE-2012-1098](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-1098): Cross-site scripting (XSS) vulnerability in Ruby on Rails 3.0.x before 3.0.12, 3.1.x before 3.1.4, and 3.2.x before 3.2.2 allows remote attackers to inject arbitrary web script or HTML via vectors involving a SafeBuffer object that is manipulated through certain methods.
|
95
67
|
* [CVE-2012-1099](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-1099): Cross-site scripting (XSS) vulnerability in actionpack/lib/action_view/helpers/form_options_helper.rb in the select helper in Ruby on Rails 3.0.x before 3.0.12, 3.1.x before 3.1.4, and 3.2.x before 3.2.2 allows remote attackers to inject arbitrary web script or HTML via vectors involving certain generation of OPTION elements within SELECT elements.
|
96
68
|
* [CVE-2012-1241](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-1241): GRScript18.dll before 1.2.2.0 in ActiveScriptRuby (ASR) before 1.8.7 does not properly restrict interaction with an Internet Explorer ActiveX environment, which allows remote attackers to execute arbitrary Ruby code via a crafted HTML document.
|
@@ -112,6 +84,7 @@ XML documents with carefully crafted entity expansion strings which can cause th
|
|
112
84
|
* [CVE-2012-5370](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-5370): JRuby computes hash values without properly restricting the ability to trigger hash collisions predictably, which allows context-dependent attackers to cause a denial of service (CPU consumption) via crafted input to an application that maintains a hash table, as demonstrated by a universal multicollision attack against the MurmurHash2 algorithm, a different vulnerability than CVE-2011-4838.
|
113
85
|
* [CVE-2012-5371](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-5371): Ruby (aka CRuby) 1.9 before 1.9.3-p327 and 2.0 before r37575 computes hash values without properly restricting the ability to trigger hash collisions predictably, which allows context-dependent attackers to cause a denial of service (CPU consumption) via crafted input to an application that maintains a hash table, as demonstrated by a universal multicollision attack against a variant of the MurmurHash2 algorithm, a different vulnerability than CVE-2011-4815.
|
114
86
|
* [CVE-2012-5380](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-5380): ** DISPUTED ** Untrusted search path vulnerability in the installation functionality in Ruby 1.9.3-p194, when installed in the top-level C: directory, might allow local users to gain privileges via a Trojan horse DLL in the C:Ruby193in directory, which may be added to the PATH system environment variable by an administrator, as demonstrated by a Trojan horse wlbsctrl.dll file used by the "IKE and AuthIP IPsec Keying Modules" system service in Windows Vista SP1, Windows Server 2008 SP2, Windows 7 SP1, and Windows 8 Release Preview. NOTE: CVE disputes this issue because the unsafe PATH is established only by a separate administrative action that is not a default part of the Ruby installation.
|
87
|
+
* [CVE-2012-6109](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-6109): lib/rack/multipart.rb in Rack before 1.1.4, 1.2.x before 1.2.6, 1.3.x before 1.3.7, and 1.4.x before 1.4.2 uses an incorrect regular expression, which allows remote attackers to cause a denial of service (infinite loop) via a crafted Content-Disposion header.
|
115
88
|
* [CVE-2012-6134](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-6134): Cross-site request forgery (CSRF) vulnerability in the omniauth-oauth2 gem 1.1.1 and earlier for Ruby allows remote attackers to hijack the authentication of users for requests that modify session state.
|
116
89
|
* [CVE-2012-6496](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-6496): SQL injection vulnerability in the Active Record component in Ruby on Rails before 3.0.18, 3.1.x before 3.1.9, and 3.2.x before 3.2.10 allows remote attackers to execute arbitrary SQL commands via a crafted request that leverages incorrect behavior of dynamic finders in applications that can use unexpected data types in certain find_by_ method calls.
|
117
90
|
* [CVE-2012-6497](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-6497): The Authlogic gem for Ruby on Rails, when used with certain versions before 3.2.10, makes potentially unsafe find_by_id method calls, which might allow remote attackers to conduct CVE-2012-6496 SQL injection attacks via a crafted parameter in environments that have a known secret_token value, as demonstrated by a value contained in secret_token.rb in an open-source product.
|
@@ -119,8 +92,11 @@ XML documents with carefully crafted entity expansion strings which can cause th
|
|
119
92
|
* [CVE-2013-0156](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-0156): active_support/core_ext/hash/conversions.rb in Ruby on Rails before 2.3.15, 3.0.x before 3.0.19, 3.1.x before 3.1.10, and 3.2.x before 3.2.11 does not properly restrict casts of string values, which allows remote attackers to conduct object-injection attacks and execute arbitrary code, or cause a denial of service (memory and CPU consumption) involving nested XML entity references, by leveraging Action Pack support for (1) YAML type conversion or (2) Symbol type conversion.
|
120
93
|
* [CVE-2013-0162](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-0162): The diff_pp function in lib/gauntlet_rubyparser.rb in the ruby_parser gem 3.1.1 and earlier for Ruby allows local users to overwrite arbitrary files via a symlink attack on a temporary file with a predictable name in /tmp.
|
121
94
|
* [CVE-2013-0175](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-0175): multi_xml gem 0.5.2 for Ruby, as used in Grape before 0.2.6 and possibly other products, does not properly restrict casts of string values, which allows remote attackers to conduct object-injection attacks and execute arbitrary code, or cause a denial of service (memory and CPU consumption) involving nested XML entity references, by leveraging support for (1) YAML type conversion or (2) Symbol type conversion, a similar vulnerability to CVE-2013-0156.
|
95
|
+
* [CVE-2013-0183](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-0183): multipart/parser.rb in Rack 1.3.x before 1.3.8 and 1.4.x before 1.4.3 allows remote attackers to cause a denial of service (memory consumption and out-of-memory error) via a long string in a Multipart HTTP packet.
|
96
|
+
* [CVE-2013-0184](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-0184): Unspecified vulnerability in Rack::Auth::AbstractRequest in Rack 1.1.x before 1.1.5, 1.2.x before 1.2.7, 1.3.x before 1.3.9, and 1.4.x before 1.4.4 allows remote attackers to cause a denial of service via unknown vectors related to "symbolized arbitrary strings."
|
122
97
|
* [CVE-2013-0233](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-0233): Devise gem 2.2.x before 2.2.3, 2.1.x before 2.1.3, 2.0.x before 2.0.5, and 1.5.x before 1.5.4 for Ruby, when using certain databases, does not properly perform type conversion when performing database queries, which might allow remote attackers to cause incorrect results to be returned and bypass security checks via unknown vectors, as demonstrated by resetting passwords of arbitrary accounts.
|
123
98
|
* [CVE-2013-0256](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-0256): darkfish.js in RDoc 2.3.0 through 3.12 and 4.x before 4.0.0.preview2.1, as used in Ruby, does not properly generate documents, which allows remote attackers to conduct cross-site scripting (XSS) attacks via a crafted URL.
|
99
|
+
* [CVE-2013-0262](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-0262): rack/file.rb (Rack::File) in Rack 1.5.x before 1.5.2 and 1.4.x before 1.4.5 allows attackers to access arbitrary files outside the intended root directory via a crafted PATH_INFO environment variable, probably a directory traversal vulnerability that is remotely exploitable, aka "symlink path traversals."
|
124
100
|
* [CVE-2013-0263](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-0263): Rack::Session::Cookie in Rack 1.5.x before 1.5.2, 1.4.x before 1.4.5, 1.3.x before 1.3.10, 1.2.x before 1.2.8, and 1.1.x before 1.1.6 allows remote attackers to guess the session cookie, gain privileges, and execute arbitrary code via a timing attack involving an HMAC comparison function that does not run in constant time.
|
125
101
|
* [CVE-2013-0269](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-0269): The JSON gem before 1.5.5, 1.6.x before 1.6.8, and 1.7.x before 1.7.7 for Ruby allows remote attackers to cause a denial of service (resource consumption) or bypass the mass assignment protection mechanism via a crafted JSON document that triggers the creation of arbitrary Ruby symbols or certain internal objects, as demonstrated by conducting a SQL injection attack against Ruby on Rails, aka "Unsafe Object Creation Vulnerability."
|
126
102
|
* [CVE-2013-0276](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-0276): ActiveRecord in Ruby on Rails before 2.3.17, 3.1.x before 3.1.11, and 3.2.x before 3.2.12 allows remote attackers to bypass the attr_protected protection mechanism and modify protected model attributes via a crafted request.
|
@@ -128,6 +104,7 @@ XML documents with carefully crafted entity expansion strings which can cause th
|
|
128
104
|
* [CVE-2013-0284](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-0284): Ruby agent 3.2.0 through 3.5.2 serializes sensitive data when communicating with servers operated by New Relic, which allows remote attackers to obtain sensitive information (database credentials and SQL statements) by sniffing the network and deserializing the data.
|
129
105
|
* [CVE-2013-0285](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-0285): The nori gem 2.0.x before 2.0.2, 1.1.x before 1.1.4, and 1.0.x before 1.0.3 for Ruby does not properly restrict casts of string values, which allows remote attackers to conduct object-injection attacks and execute arbitrary code, or cause a denial of service (memory and CPU consumption) involving nested XML entity references, by leveraging Action Pack support for (1) YAML type conversion or (2) Symbol type conversion, a similar vulnerability to CVE-2013-0156.
|
130
106
|
* [CVE-2013-0333](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-0333): lib/active_support/json/backends/yaml.rb in Ruby on Rails 2.3.x before 2.3.16 and 3.0.x before 3.0.20 does not properly convert JSON data to YAML data for processing by a YAML parser, which allows remote attackers to execute arbitrary code, conduct SQL injection attacks, or bypass authentication via crafted data that triggers unsafe decoding, a different vulnerability than CVE-2013-0156.
|
107
|
+
* [CVE-2013-1607](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-1607): PDFKit Gem for Ruby contains a flaw that is due to the program failing to properly validate input during the handling of parameters when generating PDF files. This may allow a remote attacker to potentially execute arbitrary code via the pdfkit generation options.
|
131
108
|
* [CVE-2013-1655](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-1655): Puppet 2.7.x before 2.7.21 and 3.1.x before 3.1.1, when
|
132
109
|
running Ruby 1.9.3 or later, allows remote attackers to execute
|
133
110
|
arbitrary code via vectors related to "serialized attributes."
|
@@ -151,33 +128,72 @@ XML documents with carefully crafted entity expansion strings which can cause th
|
|
151
128
|
* [CVE-2013-2065](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-2065): Native functions exposed to Ruby with DL or Fiddle do not check the taint values set on the objects passed in. This can result in tainted objects being accepted as input when a SecurityError exception should be raised.
|
152
129
|
* [CVE-2013-2090](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-2090): Ruby Gem Creme Fraiche version 0.6 suffers from a remote command injection vulnerability due to unsanitized input.
|
153
130
|
* [CVE-2013-2119](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-2119): Phusion Passenger gem before 3.0.21 and 4.0.x before 4.0.5 for Ruby allows local users to cause a denial of service (prevent application start) or gain privileges by pre-creating a temporary "config" file in a directory with a predictable name in /tmp/ before it is used by the gem.
|
131
|
+
* [CVE-2013-2512](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-2512): ftpd Gem for Ruby contains a flaw that is triggered when handling a specially crafted option or filename that contains a shell character. This may allow a remote attacker to inject arbitrary commands
|
132
|
+
* [CVE-2013-2513](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-2513): flash_tool Gem for Ruby contains a flaw that is triggered during the handling of downloaded files that contain shell characters. With a specially crafted file, a context-dependent attacker can execute arbitrary commands.
|
133
|
+
* [CVE-2013-2516](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-2516): fileutils Gem for Ruby contains a flaw in file_utils.rb. The issue is triggered when handling a specially crafted URL containing a command after a delimiter (;). This may allow a remote attacker to potentially execute arbitrary commands.
|
154
134
|
* [CVE-2013-2615](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-2615): lib/entry_controller.rb in the fastreader Gem 1.0.8 for Ruby allows remote attackers to execute arbitrary commands via shell metacharacters in a URL.
|
155
135
|
* [CVE-2013-2616](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-2616): lib/mini_magick.rb in the MiniMagick Gem 1.3.1 for Ruby allows remote attackers to execute arbitrary commands via shell metacharacters in a URL.
|
156
136
|
* [CVE-2013-2617](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-2617): lib/curl.rb in the Curl Gem for Ruby allows remote attackers to execute arbitrary commands via shell metacharacters in a URL.
|
157
137
|
* [CVE-2013-3221](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-3221): The Active Record component in Ruby on Rails 2.3.x, 3.0.x, 3.1.x, and 3.2.x does not ensure that the declared data type of a database column is used during comparisons of input values to stored values in that column, which makes it easier for remote attackers to conduct data-type injection attacks against Ruby on Rails applications via a crafted value, as demonstrated by unintended interaction between the "typed XML" feature and a MySQL database.
|
158
138
|
* [CVE-2013-4164](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4164): Any time a string is converted to a floating point value, a specially crafted string can cause a heap overflow. This can lead to a denial of service attack via segmentation faults and possibly arbitrary code execution. Any program that converts input of unknown origin to floating point values (especially common when accepting JSON) are vulnerable.
|
139
|
+
* [CVE-2013-4203](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4203): The self.run_gpg function in lib/rgpg/gpg_helper.rb in the rgpg gem before 0.2.3 for Ruby allows remote attackers to execute arbitrary commands via shell metacharacters in unspecified vectors.
|
159
140
|
* [CVE-2013-4389](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4389): Multiple format string vulnerabilities in log_subscriber.rb files in the log subscriber component in Action Mailer in Ruby on Rails 3.x before 3.2.15 allow remote attackers to cause a denial of service via a crafted e-mail address that is improperly handled during construction of a log message.
|
141
|
+
* [CVE-2013-4413](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4413): Wicked Gem for Ruby contains a flaw that is due to the program failing to properly sanitize input passed via the 'the_step' parameter upon submission to the render_redirect.rb script. This may allow a remote attacker to gain access to arbitrary files.
|
160
142
|
* [CVE-2013-4457](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4457): The Cocaine gem 0.4.0 through 0.5.2 for Ruby allows context-dependent attackers to execute arbitrary commands via a crafted has object, related to recursive variable interpolation.
|
161
143
|
* [CVE-2013-4478](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4478): Sup before 0.13.2.1 and 0.14.x before 0.14.1.1 allows remote attackers to execute arbitrary commands via shell metacharacters in the filename of an email attachment.
|
162
144
|
* [CVE-2013-4479](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4479): lib/sup/message_chunks.rb in Sup before 0.13.2.1 and 0.14.x before 0.14.1.1 allows remote attackers to execute arbitrary commands via shell metacharacters in the content_type of an email attachment.
|
145
|
+
* [CVE-2013-4489](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4489): There is a remote code execution vulnerability in the code search feature of GitLab provided by the grit gem.
|
163
146
|
* [CVE-2013-4491](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4491): Cross-site scripting (XSS) vulnerability in actionpack/lib/action_view/helpers/translation_helper.rb in the internationalization component in Ruby on Rails 3.x before 3.2.16 and 4.x before 4.0.2 allows remote attackers to inject arbitrary web script or HTML via a crafted string that triggers generation of a fallback string by the i18n gem.
|
164
147
|
* [CVE-2013-4492](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4492): Cross-site scripting (XSS) vulnerability in exceptions.rb in the i18n gem before 0.6.6 for Ruby allows remote attackers to inject arbitrary web script or HTML via a crafted I18n::MissingTranslationData.new call.
|
165
148
|
* [CVE-2013-4562](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4562): Because of the way that omniauth-facebook supports setting a per-request state parameter by storing it in the session, it is possible to circumvent the automatic CSRF protection. Therefore the CSRF added in 1.4.1 should be considered broken. If you are currently providing a custom state, you will need to store and retrieve this yourself (for example, by using the session store) to use 1.5.0.
|
149
|
+
* [CVE-2013-4593](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4593): omniauth-facebook Gem for Ruby contains a flaw that is due to the application supporting passing the access token via the URL. This may allow a remote attacker to bypass authentication and authenticate as another user.
|
166
150
|
* [CVE-2013-5647](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-5647): lib/sounder/sound.rb in the sounder gem 1.0.1 for Ruby allows remote attackers to execute arbitrary commands via shell metacharacters in a filename.
|
151
|
+
* [CVE-2013-5671](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-5671): fog-dragonfly Gem for Ruby contains a flaw that is due to the program failing to properly sanitize input passed via the imagemagickutils.rb script. This may allow a remote attacker to execute arbitrary commands.
|
167
152
|
* [CVE-2013-6414](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-6414): actionpack/lib/action_view/lookup_context.rb in Action View in Ruby on Rails 3.x before 3.2.16 and 4.x before 4.0.2 allows remote attackers to cause a denial of service (memory consumption) via a header containing an invalid MIME type that leads to excessive caching.
|
168
153
|
* [CVE-2013-6415](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-6415): Cross-site scripting (XSS) vulnerability in the number_to_currency helper in actionpack/lib/action_view/helpers/number_helper.rb in Ruby on Rails before 3.2.16 and 4.x before 4.0.2 allows remote attackers to inject arbitrary web script or HTML via the unit parameter.
|
169
154
|
* [CVE-2013-6416](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-6416): Cross-site scripting (XSS) vulnerability in the simple_format helper in actionpack/lib/action_view/helpers/text_helper.rb in Ruby on Rails 4.x before 4.0.2 allows remote attackers to inject arbitrary web script or HTML via a crafted HTML attribute.
|
170
155
|
* [CVE-2013-6417](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-6417): actionpack/lib/action_dispatch/http/request.rb in Ruby on Rails before 3.2.16 and 4.x before 4.0.2 does not properly consider differences in parameter handling between the Active Record component and the JSON implementation, which allows remote attackers to bypass intended database-query restrictions and perform NULL checks or trigger missing WHERE clauses via a crafted request that leverages (1) third-party Rack middleware or (2) custom Rack middleware. NOTE: this vulnerability exists because of an incomplete fix for CVE-2013-0155.
|
171
156
|
* [CVE-2013-6421](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-6421): The unpack_zip function in archive_unpacker.rb in the sprout gem 0.7.246 for Ruby allows context-dependent attackers to execute arbitrary commands via shell metacharacters in a (1) filename or (2) path.
|
172
157
|
* [CVE-2013-6459](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-6459): Cross-site scripting (XSS) vulnerability in the will_paginate gem before 3.0.5 for Ruby allows remote attackers to inject arbitrary web script or HTML via vectors involving generated pagination links.
|
158
|
+
* [CVE-2013-6460](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-6460): There is a vulnerability in Nokogiri when using JRuby where the parser can enter an infinite loop and exhaust the process memory. Nokogiri users on JRuby using the native Java extension. Attackers can send XML documents with carefully crafted documents which can cause the XML processor to enter an infinite loop, causing the server to run out of memory and crash.
|
159
|
+
* [CVE-2013-6461](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-6461): There is an entity expansion vulnerability in Nokogiri when using JRuby. Nokogiri users on JRuby using the native Java extension. Attackers can send
|
160
|
+
XML documents with carefully crafted entity expansion strings which can cause the server to run out of memory and crash.
|
173
161
|
* [CVE-2013-7086](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-7086): The message function in lib/webbynode/notify.rb in the Webbynode gem 1.0.5.3 and earlier for Ruby allows context-dependent attackers to execute arbitrary commands via shell metacharacters in a growlnotify message.
|
174
162
|
* [CVE-2014-0036](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0036): rbovirt Gem for Ruby contains a flaw related to certificate validation. The issue is due to the program failing to validate SSL certificates. This may allow an attacker with access to network traffic (e.g. MiTM, DNS cache poisoning) to spoof the SSL server via an arbitrary certificate that appears valid. Such an attack would allow for the interception of sensitive traffic, and potentially allow for the injection of content into the SSL stream.
|
163
|
+
* [CVE-2014-0080](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0080): SQL injection vulnerability in activerecord/lib/active_record/connection_adapters/postgresql/cast.rb in Active Record in Ruby on Rails 4.0.x before 4.0.3, and 4.1.0.beta1, when PostgreSQL is used, allows remote attackers to execute "add data" SQL commands via vectors involving (backslash) characters that are not properly handled in operations on array columns.
|
175
164
|
* [CVE-2014-0081](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0081): Multiple cross-site scripting (XSS) vulnerabilities in actionview/lib/action_view/helpers/number_helper.rb in Ruby on Rails before 3.2.17, 4.0.x before 4.0.3, and 4.1.x before 4.1.0.beta2 allow remote attackers to inject arbitrary web script or HTML via the (1) format, (2) negative_format, or (3) units parameter to the (a) number_to_currency, (b) number_to_percentage, or (c) number_to_human helper.
|
176
165
|
* [CVE-2014-0082](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0082): actionpack/lib/action_view/template/text.rb in Action View in Ruby on Rails 3.x before 3.2.17 converts MIME type strings to symbols during use of the :text option to the render method, which allows remote attackers to cause a denial of service (memory consumption) by including these strings in headers.
|
177
166
|
* [CVE-2014-1233](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-1233): The paratrooper-pingdom gem 1.0.0 for Ruby allows local users to obtain the App-Key, username, and password values by listing the curl process.
|
178
167
|
* [CVE-2014-1234](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-1234): The paratrooper-newrelic gem 1.0.1 for Ruby allows local users to obtain the X-Api-Key value by listing the curl process.
|
179
168
|
* [CVE-2014-2322](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-2322): Arabic Prawn Gem for Ruby contains a flaw in the ib/string_utf_support.rb file. The issue is due to the program failing to sanitize user input. This may allow a remote attacker to inject arbitrary commands.
|
169
|
+
* [CVE-2014-2525](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-2525):
|
180
170
|
* [CVE-2014-2538](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-2538): rack-ssl Gem for Ruby contains a flaw that allows a reflected cross-site scripting (XSS) attack. This flaw exists because the program does not validate input passed via error messages before returning it to users. This may allow a context-dependent attacker to create a specially crafted request that would execute arbitrary script code in a user's browser session within the trust relationship between their browser and the server.
|
171
|
+
* Owasp Ror CheatSheet: Command Injection: Ruby offers a function called "eval" which will dynamically build new Ruby code based on Strings. It also has a number of ways to call system commands. While the power of these commands is quite useful, extreme care should be taken when using them in a Rails based application. Usually, its just a bad idea. If need be, a whitelist of possible values should be used and any input should be validated as thoroughly as possible. The Ruby Security Reviewer's Guide has a section on injection and there are a number of OWASP references for it, starting at the top: Command Injection.
|
172
|
+
* Owasp Ror CheatSheet: Cross Site Request Forgery: Ruby on Rails has specific, built in support for CSRF tokens. To enable it, or ensure that it is enabled, find the base ApplicationController and look for the protect_from_forgery directive. Note that by default Rails does not provide CSRF protection for any HTTP GET request.
|
173
|
+
* Owasp Ror CheatSheet: Session management: By default, Ruby on Rails uses a Cookie based session store. What that means is that unless you change something, the session will not expire on the server. That means that some default applications may be vulnerable to replay attacks. It also means that sensitive information should never be put in the session.
|
174
|
+
* Owasp Ror CheatSheet: Mass Assignement in model: Although the major issue with Mass Assignment has been fixed by default in base Rails specifically when generating new projects, it still applies to older and upgraded projects so it is important to understand the issue and to ensure that only attributes that are intended to be modifiable are exposed.
|
175
|
+
* Owasp Ror CheatSheet: Security Related Headers: To set a header value, simply access the response.headers object as a hash inside your controller (often in a before/after_filter). Rails 4 provides the "default_headers" functionality that will automatically apply the values supplied. This works for most headers in almost all cases.
|
176
|
+
* Owasp Ror CheatSheet: Check for safe redirect and forward: Web applications often require the ability to dynamically redirect users based
|
177
|
+
on client-supplied data. To clarify, dynamic redirection usually entails the
|
178
|
+
client including a URL in a parameter within a request to the application. Once
|
179
|
+
received by the application, the user is redirected to the URL specified in the
|
180
|
+
request.
|
181
|
+
|
182
|
+
For example: http://www.example.com/redirect?url=http://www.example_commerce_site.com/checkout
|
183
|
+
|
184
|
+
The above request would redirect the user to http://www.example.com/checkout.
|
185
|
+
|
186
|
+
The security concern associated with this functionality is leveraging an
|
187
|
+
organization's trusted brand to phish users and trick them into visiting a
|
188
|
+
malicious site, in our example, "badhacker.com".
|
189
|
+
|
190
|
+
Example: http://www.example.com/redirect?url=http://badhacker.com
|
191
|
+
|
192
|
+
The most basic, but restrictive protection is to use the :only_path option.
|
193
|
+
Setting this to true will essentially strip out any host information.
|
194
|
+
* Owasp Ror CheatSheet: Sensitive Files: Many Ruby on Rails apps are open source and hosted on publicly available source code repositories. Whether that is the case or the code is committed to a corporate source control system, there are certain files that should be either excluded or carefully managed.
|
195
|
+
* Not revised code: Analyzing comments, it seems your code is waiting from some review from you. Please consider take action before putting it in production.
|
196
|
+
This check will analyze the source code looking for the following patterns: XXX, TO_CHECK, CHECKME, CHECK and FIXME
|
181
197
|
|
182
198
|
|
183
|
-
_Last updated:
|
199
|
+
_Last updated: Tue 01 Apr 08:13:46 CEST 2014_
|
data/README.md
CHANGED
@@ -17,10 +17,11 @@ MVC (Model View Controller) frameworks, like:
|
|
17
17
|
[![Build Status](https://travis-ci.org/codesake/codesake-dawn.png?branch=master)](https://travis-ci.org/codesake/codesake-dawn)
|
18
18
|
[![Dependency Status](https://gemnasium.com/codesake/codesake-dawn.png)](https://gemnasium.com/codesake/codesake-dawn)
|
19
19
|
[![Coverage Status](https://coveralls.io/repos/codesake/codesake-dawn/badge.png)](https://coveralls.io/r/codesake/codesake-dawn)
|
20
|
+
[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/codesake/codesake-dawn/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
|
20
21
|
|
21
22
|
---
|
22
23
|
|
23
|
-
Codesake::Dawn version 1.1 has
|
24
|
+
Codesake::Dawn version 1.1 has 171 security checks loaded in its knowledge
|
24
25
|
base. Most of them are CVE bulletins applying to gems or the ruby interpreter
|
25
26
|
itself. There are also some check coming from Owasp Ruby on Rails cheatsheet.
|
26
27
|
|
@@ -84,8 +85,9 @@ And then upgrade your bundle
|
|
84
85
|
|
85
86
|
You may want to build it from source, so you have to check it out from github first:
|
86
87
|
|
87
|
-
$ git clone https://github.com/codesake/codesake-dawn
|
88
|
+
$ git clone https://github.com/codesake/codesake-dawn.git
|
88
89
|
$ cd codesake-dawn
|
90
|
+
$ bundle install
|
89
91
|
$ rake install
|
90
92
|
|
91
93
|
And the codesake-dawn gem will be built in a pkg directory and then installed
|
@@ -273,7 +275,7 @@ The list of knowledge base content: [http://dawn.codesake.com/knowledge-base](ht
|
|
273
275
|
|
274
276
|
Mailing list: [https://groups.google.com/forum/#!forum/codesake-dawn](https://groups.google.com/forum/#!forum/codesake-dawn)
|
275
277
|
|
276
|
-
##
|
278
|
+
## Support us
|
277
279
|
|
278
280
|
Feedbacks are great and we really love to hear your voice.
|
279
281
|
|
@@ -346,3 +348,6 @@ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
346
348
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
347
349
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
348
350
|
|
351
|
+
|
352
|
+
|
353
|
+
|
data/Rakefile
CHANGED
@@ -36,7 +36,7 @@ task :cve, :name do |t,args|
|
|
36
36
|
SRC_DIR = "./lib/codesake/dawn/kb/"
|
37
37
|
SPEC_DIR = "./spec/lib/kb/"
|
38
38
|
|
39
|
-
raise "### It seems that #{name} is already in Dawn knowledge base" unless Codesake::Dawn::KnowledgeBase.
|
39
|
+
raise "### It seems that #{name} is already in Dawn knowledge base" unless Codesake::Dawn::KnowledgeBase.find(nil, name).nil?
|
40
40
|
raise "### Invalid CVE title: #{name}" if name.nil? or name.empty? or /CVE-\d{4}-\d{4}/.match(name).nil?
|
41
41
|
raise "### No target directory: #{SRC_DIR}" unless Dir.exists?(SRC_DIR)
|
42
42
|
raise "### No rspec directory: #{SPEC_DIR}" unless Dir.exists?(SPEC_DIR)
|
data/Roadmap.md
CHANGED
@@ -3,94 +3,57 @@
|
|
3
3
|
Codesake::Dawn is a static analysis security scanner for ruby written web applications.
|
4
4
|
It supports [Sinatra](http://www.sinatrarb.com),
|
5
5
|
[Padrino](http://www.padrinorb.com) and [Ruby on Rails](http://rubyonrails.org)
|
6
|
-
frameworks.
|
6
|
+
frameworks.
|
7
7
|
|
8
8
|
This is an ongoing roadmap for the Codesake::Dawn source code review tool.
|
9
9
|
|
10
|
-
_latest update:
|
11
|
-
|
12
|
-
## Version 1.1.0
|
13
|
-
|
14
|
-
* CVE-2014-1234
|
15
|
-
* CVE-2014-1233
|
16
|
-
* CVE-2013-5671
|
17
|
-
* CVE-2013-4593
|
18
|
-
* CVE-2013-4489
|
19
|
-
* CVE-2013-4413
|
20
|
-
* CVE-2013-2516
|
21
|
-
* CVE-2013-2513
|
22
|
-
* CVE-2013-2512
|
23
|
-
* CVE-2013-1607
|
24
|
-
* CVE-2013-0262
|
25
|
-
* CVE-2013-0184
|
26
|
-
* CVE-2013-0183
|
27
|
-
* CVE-2012-6109
|
28
|
-
* CVE-2011-5036
|
29
|
-
* CVE-2007-6183
|
30
|
-
* adding test for RoRCheatSheet\_2
|
31
|
-
* adding test for RoRCheatSheet\_3
|
32
|
-
* adding test for RoRCheatSheet\_5
|
33
|
-
* adding test for RoRCheatSheet\_6
|
34
|
-
* adding test for RoRCheatSheet\_9
|
35
|
-
* adding test for RoRCheatSheet\_10
|
36
|
-
* adding test for RoRCheatSheet\_11
|
37
|
-
* adding test for RoRCheatSheet\_12
|
38
|
-
* adding test for RoRCheatSheet\_13
|
39
|
-
* adding test for RoRCheatSheet\_14
|
40
|
-
* adding test for RoRCheatSheet\_15
|
41
|
-
* adding test for RoRCheatSheet\_16
|
42
|
-
* add a check against deprecated ruby / gems version. I will handle MVC gems
|
43
|
-
right now.
|
44
|
-
* Better bin/dawn script output formatting using some library like PrettyPrint
|
45
|
-
(this can involve a change in codesake-commons package). We will use tables
|
46
|
-
to create ascii organized reports.
|
47
|
-
* Create a digital signature as described [here](http://rubygems.rubyforge.org/rubygems-update/Gem/Security.html)
|
48
|
-
* bin/dawn refactoring using the new Reporting class to produce json, csv, html output
|
49
|
-
* add config file with setting (css directory, report options, ...)
|
10
|
+
_latest update: Mon Mar 31 13:01:21 CEST 2014_
|
50
11
|
|
51
12
|
## Version 1.2.0
|
52
13
|
|
53
|
-
* move is\_vulnerable\_version? and is\_vulnerable\_patchlevel? to an adhoc
|
54
|
-
class handling version comparison
|
55
|
-
* add @rubysec vulnerability database integration using rake
|
56
14
|
* create a task to check for new CVE in NVD website
|
15
|
+
* SQLite3 integration for saving data. Each project will have its own SQLite
|
16
|
+
database containing reviews, findings and all. A table with Codesake::Dawn version it
|
17
|
+
created the database will be inserted as well
|
57
18
|
* add a language check. It will handle a ruby script as input and a
|
58
19
|
ruby\_parser line as unsafe pattern. It will compile the ruby and look for
|
59
20
|
the unsafe pattern
|
60
21
|
* Add preliminary Cross Site Scripting detection for Ruby on Rails.
|
61
|
-
* Issue #40: Support for string version modifiers
|
62
22
|
* Issue #7: Improving HTML output and let the user the capability to provide a
|
63
23
|
basic layout to customize report
|
64
|
-
* Add a --github option to Codesake::Dawn to clone a remote repository, perform
|
65
|
-
a bundle install and do a code review.
|
66
|
-
* Add support for github hooks
|
67
24
|
* Add a ruby deprecation check, accordingly to
|
68
25
|
https://bugs.ruby-lang.org/projects/ruby/wiki/ReleaseEngineering
|
69
|
-
* Add a severity attribute to basic check. It must be calculated automatically
|
70
|
-
on the cvss_score or it may be overriden upon check creation.
|
71
26
|
|
72
27
|
## Version 1.3.0
|
73
28
|
|
74
|
-
* Add support for ERB for in detect\_views
|
29
|
+
* Add support for ERB for in detect\_views
|
75
30
|
* Add preliminary javascript support
|
76
|
-
* adding test for CVE-2011-4969 XSS in jquery < 1.6.2
|
31
|
+
* adding test for CVE-2011-4969 XSS in jquery < 1.6.2
|
77
32
|
* add support for pure Rack applications
|
78
33
|
* Cross Site Scripting detection: it must be done for all MVC frameworks
|
79
34
|
(including Rack) and it must cover either reflected than stored attack
|
80
35
|
patterns
|
36
|
+
* Add a --github option to Codesake::Dawn to clone a remote repository, perform
|
37
|
+
a bundle install and do a code review.
|
38
|
+
* Add support for github hooks
|
81
39
|
* Add premilinary SQL injection detection for Ruby on Rails
|
82
40
|
|
83
41
|
## Version 1.5.0
|
84
42
|
|
85
43
|
* Add insecure direct object reference detection for all MVC frameworks (including Rack)
|
86
44
|
* SQL Injection detection: it must be done for all MVC frameworks (including Rack)
|
87
|
-
* Add automatic mitigation patch generation
|
88
|
-
* SQLite3 integration for saving data. Each project will have its own SQLite
|
89
|
-
database containing reviews, findings and all. A table with Codesake::Dawn version it
|
90
|
-
created the database will be inserted as well
|
45
|
+
* Add automatic mitigation patch generation
|
91
46
|
* Add support for Javascript
|
92
47
|
|
93
|
-
|
48
|
+
# Spinoff projects
|
49
|
+
|
50
|
+
Codesake::Dawn is a security scanner for ruby code. Modern web applications
|
51
|
+
however are wrote in a plenty of great technologies deserving a good tool for
|
52
|
+
security scan.
|
53
|
+
|
54
|
+
Node.js and Go are very promising programming languages and a tool similiar to
|
55
|
+
Codesake::Dawn can be wrote also to support them:
|
94
56
|
|
95
|
-
|
96
|
-
|
57
|
+
Initially they were in the Codesake::Dawn roadmap for a 2.0.0 version. However
|
58
|
+
we decide to drop this in the name of being focused on ruby programming
|
59
|
+
language.
|
@@ -0,0 +1 @@
|
|
1
|
+
57977e5c9f5349f28858053a5a6663b21a003fae1ad9bd099f70cdbc4595a299b5e0de7d01a6d4954e8393815a288d5d861e3e165f037da6c605918ae2a28ccd
|
@@ -0,0 +1,67 @@
|
|
1
|
+
## Press announcement
|
2
|
+
|
3
|
+
The April 4th 2013, the first Codesake::Dawn import in Github happened. After
|
4
|
+
1 year and three months later than the first major released, I'm happy to
|
5
|
+
annonunce Codesake::Dawn 1.1.0, codename Lightning McQueen
|
6
|
+
|
7
|
+
Codesake::Dawn is a source code scanner designed to review your code for
|
8
|
+
security issues.
|
9
|
+
|
10
|
+
Codesake::Dawn is able to scan your ruby standalone programs but its main usage
|
11
|
+
is to deal with web applications. It supports applications written using majors
|
12
|
+
MVC (Model View Controller) frameworks, like:
|
13
|
+
|
14
|
+
* [Ruby on Rails](http://rubyonrails.org)
|
15
|
+
* [Sinatra](http://www.sinatrarb.com)
|
16
|
+
* [Padrino](http://www.padrinorb.com)
|
17
|
+
|
18
|
+
Codesake::Dawn version 1.1 has 171 security checks loaded in its knowledge
|
19
|
+
base. Most of them are CVE bulletins applying to gems or the ruby interpreter
|
20
|
+
itself. There are also some check coming from Owasp Ruby on Rails cheatsheet.
|
21
|
+
|
22
|
+
Writing safe code it's important, but sometimes security issues are introduced
|
23
|
+
by third party code your application relies on. As example, consider a SQL
|
24
|
+
Injection vulnerability introduced by Ruby on Rails framework.
|
25
|
+
|
26
|
+
Despite the effort you spend in sanitizing inputs, your web application
|
27
|
+
inherits the vulnerability suffering as well. An attacker can easily exploit it
|
28
|
+
and break into your database unless you upgrade the offended gem.
|
29
|
+
|
30
|
+
There is a comprehensive set of command line flags you can read more by issuing
|
31
|
+
```dawn --list-knowledge-base``` flag or by reading [project
|
32
|
+
README](https://github.com/codesake/codesake-dawn/raw/master/README.md) file.
|
33
|
+
|
34
|
+
The list of security checks included in version 1.1.0 can be found online at:
|
35
|
+
[http://dawn.codesake.com/knowledge-base](http://dawn.codesake.com/knowledge-base).
|
36
|
+
|
37
|
+
You can use [facilities provided by
|
38
|
+
github](https://github.com/codesake/codesake-dawn/issues) to submit bug
|
39
|
+
reports, product enhancements, new security checks you want to me to add in
|
40
|
+
future releases and even success stories.
|
41
|
+
|
42
|
+
Now it's time for you to install Codesake::Dawn version 1.1.0 with the
|
43
|
+
following command and start reviewing your code for security issues:
|
44
|
+
|
45
|
+
```
|
46
|
+
$ gem install codesake-dawn
|
47
|
+
```
|
48
|
+
|
49
|
+
You can find the announcement on the web here: [http://dawn.codesake.com/blog/announce-codesake-dawn-v1-1-0-released/](http://dawn.codesake.com/blog/announce-codesake-dawn-v1-1-0-released/)
|
50
|
+
Enjoy it!
|
51
|
+
Paolo - paolo@codesake.com
|
52
|
+
|
53
|
+
## Twitter announcement
|
54
|
+
|
55
|
+
### version 1.1.0
|
56
|
+
@dawnscanner version 1.1.0 is out. 171 security checks. Improved output and more. Read the announcement: http://dawn.codesake.com/blog/announce-codesake-dawn-v1-1-0-released/ #ruby #rails #sinatra #padrina #security #scanner
|
57
|
+
|
58
|
+
## Linkedin announcement
|
59
|
+
|
60
|
+
### version 1.0.0
|
61
|
+
@dawnscanner version 1.1.0 is out. Read the announcement online. Codesake::Dawn makes security code review fun for ruby developers, it scans 171 CVE bulletins and future release will be able to scan custom ruby code for XSS, SQL Injections and business logic flaws. It supports Sinatra, Padrino and Ruby on Rails MVC frameworks out of the box.
|
62
|
+
|
63
|
+
$ gem install codesake-dawn
|
64
|
+
$ have fun
|
65
|
+
|
66
|
+
## HN Link
|
67
|
+
## Reddit
|
@@ -0,0 +1,61 @@
|
|
1
|
+
module Codesake
|
2
|
+
module Dawn
|
3
|
+
module Kb
|
4
|
+
class CVE_2014_2525_a
|
5
|
+
include BasicCheck
|
6
|
+
|
7
|
+
def initialize
|
8
|
+
message = "When relying on system wide libyaml, this must be > 0.1.5"
|
9
|
+
super({
|
10
|
+
:name=>"CVE-2014-2525-a",
|
11
|
+
:kind=>Codesake::Dawn::KnowledgeBase::CUSTOM_CHECK,
|
12
|
+
})
|
13
|
+
end
|
14
|
+
def vuln?
|
15
|
+
require 'yaml'
|
16
|
+
lyv = Psych.libyaml_version.join(".")
|
17
|
+
c = Codesake::Dawn::Kb::VersionCheck.new
|
18
|
+
return c.is_vulnerable_version?('0.1.6', lyv)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
class CVE_2014_2525_b
|
22
|
+
include DependencyCheck
|
23
|
+
|
24
|
+
def initialize
|
25
|
+
message = "When non relying on system wide libyaml, psych gem must be > 2.0.5"
|
26
|
+
super({
|
27
|
+
:name=>"CVE-2014-2525-b",
|
28
|
+
:kind=>Codesake::Dawn::KnowledgeBase::DEPENDENCY_CHECK,
|
29
|
+
})
|
30
|
+
self.safe_dependencies = [{:name=>"psych", :version=>['2.0.5']}]
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
# Automatically created with rake on 2014-03-31
|
36
|
+
class CVE_2014_2525
|
37
|
+
include ComboCheck
|
38
|
+
|
39
|
+
def initialize
|
40
|
+
message = ""
|
41
|
+
|
42
|
+
super({
|
43
|
+
:name=>"CVE-2014-2525",
|
44
|
+
:cvss=>"",
|
45
|
+
:release_date => Date.new(2014, 3, 28),
|
46
|
+
:cwe=>"",
|
47
|
+
:owasp=>"A9",
|
48
|
+
:applies=>["rails", "sinatra", "padrino"],
|
49
|
+
:kind=>Codesake::Dawn::KnowledgeBase::COMBO_CHECK,
|
50
|
+
:message=>message,
|
51
|
+
:mitigation=>"Please upgrade your system libyaml or upgrade psych gem to version 2.0.5 or higher that is linked with a safe libyaml version.",
|
52
|
+
:aux_links=>["https://www.ruby-lang.org/en/news/2014/03/29/heap-overflow-in-yaml-uri-escape-parsing-cve-2014-2525"],
|
53
|
+
:severity=>:high,
|
54
|
+
:prority=>:high,
|
55
|
+
:checks=>[CVE_2014_2525_a.new, CVE_2014_2525_b.new]
|
56
|
+
})
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -9,18 +9,18 @@ module Codesake
|
|
9
9
|
message = "rack-ssl Gem for Ruby contains a flaw that allows a reflected cross-site scripting (XSS) attack. This flaw exists because the program does not validate input passed via error messages before returning it to users. This may allow a context-dependent attacker to create a specially crafted request that would execute arbitrary script code in a user's browser session within the trust relationship between their browser and the server."
|
10
10
|
super({
|
11
11
|
:name=>"CVE-2014-2538",
|
12
|
-
:cvss=>"",
|
13
|
-
:release_date => Date.new(
|
12
|
+
:cvss=>"AV:N/AC:M/Au:N/C:N/I:P/A:N",
|
13
|
+
:release_date => Date.new(2014, 3, 25),
|
14
14
|
:cwe=>"79",
|
15
15
|
:owasp=>"A3",
|
16
16
|
:applies=>["rails"],
|
17
17
|
:kind=>Codesake::Dawn::KnowledgeBase::DEPENDENCY_CHECK,
|
18
18
|
:message=>message,
|
19
|
-
:mitigation=>"A new version for rack-ssl version it has been released. Pleas upgrade at least to version 1.4.
|
19
|
+
:mitigation=>"A new version for rack-ssl version it has been released. Pleas upgrade at least to version 1.4.0 or higher.",
|
20
20
|
:aux_links=>["http://seclists.org/oss-sec/2014/q1/594"]
|
21
21
|
})
|
22
22
|
|
23
|
-
self.safe_dependencies = [{:name=>"rack-ssl", :version=>['1.4.
|
23
|
+
self.safe_dependencies = [{:name=>"rack-ssl", :version=>['1.4.0']}]
|
24
24
|
end
|
25
25
|
end
|
26
26
|
end
|
@@ -25,7 +25,7 @@ module Codesake
|
|
25
25
|
:mitigation=>"Use ActiveRecord or the ORM you love most to handle your code session_store. Add \"Application.config.session_store :active_record_store\" to your session_store.rb file."
|
26
26
|
})
|
27
27
|
# @debug = true
|
28
|
-
end
|
28
|
+
end
|
29
29
|
end
|
30
30
|
end
|
31
31
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Core KB
|
1
|
+
# Core KB
|
2
2
|
require "codesake/dawn/kb/basic_check"
|
3
3
|
require "codesake/dawn/kb/pattern_match_check"
|
4
4
|
require "codesake/dawn/kb/dependency_check"
|
@@ -27,7 +27,7 @@ require 'codesake/dawn/kb/owasp_ror_cheatsheet/sensitive_files'
|
|
27
27
|
|
28
28
|
# A XSS issue on Simple Form gem reported by Rafael Mendonça França on
|
29
29
|
# November, 29 2013
|
30
|
-
#
|
30
|
+
#
|
31
31
|
# https://groups.google.com/forum/#!topic/ruby-security-ann/flHbLMb07tE
|
32
32
|
require "codesake/dawn/kb/simpleform_xss_20131129"
|
33
33
|
|
@@ -58,7 +58,7 @@ require "codesake/dawn/kb/cve_2007_5770"
|
|
58
58
|
require "codesake/dawn/kb/cve_2007_6077"
|
59
59
|
require "codesake/dawn/kb/cve_2007_6612"
|
60
60
|
|
61
|
-
# CVE - 2008
|
61
|
+
# CVE - 2008
|
62
62
|
|
63
63
|
require "codesake/dawn/kb/cve_2008_1145"
|
64
64
|
require "codesake/dawn/kb/cve_2008_1891"
|
@@ -214,6 +214,7 @@ require "codesake/dawn/kb/cve_2014_0082"
|
|
214
214
|
require "codesake/dawn/kb/cve_2014_1233"
|
215
215
|
require "codesake/dawn/kb/cve_2014_1234"
|
216
216
|
require "codesake/dawn/kb/cve_2014_2322"
|
217
|
+
require "codesake/dawn/kb/cve_2014_2525"
|
217
218
|
require "codesake/dawn/kb/cve_2014_2538"
|
218
219
|
|
219
220
|
module Codesake
|
@@ -228,6 +229,7 @@ module Codesake
|
|
228
229
|
RUBY_VERSION_CHECK = :ruby_version_check
|
229
230
|
OS_CHECK = :os_check
|
230
231
|
COMBO_CHECK = :combo_check
|
232
|
+
CUSTOM_CHECK = :custom_check
|
231
233
|
|
232
234
|
def initialize(options={})
|
233
235
|
@enabled_checks = Codesake::Dawn::Kb::BasicCheck::ALLOWED_FAMILIES
|
@@ -260,7 +262,7 @@ module Codesake
|
|
260
262
|
# MVC name should be passed as constructor option, so the all_by_mvc can
|
261
263
|
#
|
262
264
|
# be called without parameter, having a nice-to-read code.
|
263
|
-
# @checks = Codesake::Dawn::KnowledgeBase.new({:enabled_checks=>@enabled_checks}).all_by_mvc(@name)
|
265
|
+
# @checks = Codesake::Dawn::KnowledgeBase.new({:enabled_checks=>@enabled_checks}).all_by_mvc(@name)
|
264
266
|
def all_by_mvc(mvc)
|
265
267
|
ret = []
|
266
268
|
@security_checks.each do |sc|
|
@@ -332,48 +334,48 @@ module Codesake
|
|
332
334
|
Codesake::Dawn::Kb::CVE_2010_3933.new,
|
333
335
|
Codesake::Dawn::Kb::CVE_2011_0188.new,
|
334
336
|
Codesake::Dawn::Kb::CVE_2011_0446.new,
|
335
|
-
Codesake::Dawn::Kb::CVE_2011_0447.new,
|
336
|
-
Codesake::Dawn::Kb::CVE_2011_0739.new,
|
337
|
-
Codesake::Dawn::Kb::CVE_2011_0995.new,
|
338
|
-
Codesake::Dawn::Kb::CVE_2011_1004.new,
|
339
|
-
Codesake::Dawn::Kb::CVE_2011_1005.new,
|
340
|
-
Codesake::Dawn::Kb::CVE_2011_2197.new,
|
341
|
-
Codesake::Dawn::Kb::CVE_2011_2686.new,
|
342
|
-
Codesake::Dawn::Kb::CVE_2011_2705.new,
|
343
|
-
Codesake::Dawn::Kb::CVE_2011_2929.new,
|
344
|
-
Codesake::Dawn::Kb::CVE_2011_2930.new,
|
345
|
-
Codesake::Dawn::Kb::CVE_2011_2931.new,
|
346
|
-
Codesake::Dawn::Kb::CVE_2011_2932.new,
|
347
|
-
Codesake::Dawn::Kb::CVE_2011_3009.new,
|
348
|
-
Codesake::Dawn::Kb::CVE_2011_3186.new,
|
349
|
-
Codesake::Dawn::Kb::CVE_2011_3187.new,
|
350
|
-
Codesake::Dawn::Kb::CVE_2011_4319.new,
|
351
|
-
Codesake::Dawn::Kb::CVE_2011_4815.new,
|
352
|
-
Codesake::Dawn::Kb::CVE_2011_5036.new,
|
353
|
-
Codesake::Dawn::Kb::CVE_2012_1098.new,
|
354
|
-
Codesake::Dawn::Kb::CVE_2012_1099.new,
|
355
|
-
Codesake::Dawn::Kb::CVE_2012_1241.new,
|
356
|
-
Codesake::Dawn::Kb::CVE_2012_2139.new,
|
357
|
-
Codesake::Dawn::Kb::CVE_2012_2140.new,
|
358
|
-
Codesake::Dawn::Kb::CVE_2012_2660.new,
|
359
|
-
Codesake::Dawn::Kb::CVE_2012_2661.new,
|
360
|
-
Codesake::Dawn::Kb::CVE_2012_2671.new,
|
361
|
-
Codesake::Dawn::Kb::CVE_2012_2694.new,
|
362
|
-
Codesake::Dawn::Kb::CVE_2012_2695.new,
|
363
|
-
Codesake::Dawn::Kb::CVE_2012_3424.new,
|
364
|
-
Codesake::Dawn::Kb::CVE_2012_3463.new,
|
365
|
-
Codesake::Dawn::Kb::CVE_2012_3464.new,
|
366
|
-
Codesake::Dawn::Kb::CVE_2012_3465.new,
|
367
|
-
Codesake::Dawn::Kb::CVE_2012_4464.new,
|
368
|
-
Codesake::Dawn::Kb::CVE_2012_4466.new,
|
369
|
-
Codesake::Dawn::Kb::CVE_2012_4481.new,
|
370
|
-
Codesake::Dawn::Kb::CVE_2012_4522.new,
|
371
|
-
Codesake::Dawn::Kb::CVE_2012_5370.new,
|
372
|
-
Codesake::Dawn::Kb::CVE_2012_5371.new,
|
373
|
-
Codesake::Dawn::Kb::CVE_2012_5380.new,
|
374
|
-
Codesake::Dawn::Kb::CVE_2012_6109.new,
|
375
|
-
Codesake::Dawn::Kb::CVE_2012_6134.new,
|
376
|
-
Codesake::Dawn::Kb::CVE_2012_6496.new,
|
337
|
+
Codesake::Dawn::Kb::CVE_2011_0447.new,
|
338
|
+
Codesake::Dawn::Kb::CVE_2011_0739.new,
|
339
|
+
Codesake::Dawn::Kb::CVE_2011_0995.new,
|
340
|
+
Codesake::Dawn::Kb::CVE_2011_1004.new,
|
341
|
+
Codesake::Dawn::Kb::CVE_2011_1005.new,
|
342
|
+
Codesake::Dawn::Kb::CVE_2011_2197.new,
|
343
|
+
Codesake::Dawn::Kb::CVE_2011_2686.new,
|
344
|
+
Codesake::Dawn::Kb::CVE_2011_2705.new,
|
345
|
+
Codesake::Dawn::Kb::CVE_2011_2929.new,
|
346
|
+
Codesake::Dawn::Kb::CVE_2011_2930.new,
|
347
|
+
Codesake::Dawn::Kb::CVE_2011_2931.new,
|
348
|
+
Codesake::Dawn::Kb::CVE_2011_2932.new,
|
349
|
+
Codesake::Dawn::Kb::CVE_2011_3009.new,
|
350
|
+
Codesake::Dawn::Kb::CVE_2011_3186.new,
|
351
|
+
Codesake::Dawn::Kb::CVE_2011_3187.new,
|
352
|
+
Codesake::Dawn::Kb::CVE_2011_4319.new,
|
353
|
+
Codesake::Dawn::Kb::CVE_2011_4815.new,
|
354
|
+
Codesake::Dawn::Kb::CVE_2011_5036.new,
|
355
|
+
Codesake::Dawn::Kb::CVE_2012_1098.new,
|
356
|
+
Codesake::Dawn::Kb::CVE_2012_1099.new,
|
357
|
+
Codesake::Dawn::Kb::CVE_2012_1241.new,
|
358
|
+
Codesake::Dawn::Kb::CVE_2012_2139.new,
|
359
|
+
Codesake::Dawn::Kb::CVE_2012_2140.new,
|
360
|
+
Codesake::Dawn::Kb::CVE_2012_2660.new,
|
361
|
+
Codesake::Dawn::Kb::CVE_2012_2661.new,
|
362
|
+
Codesake::Dawn::Kb::CVE_2012_2671.new,
|
363
|
+
Codesake::Dawn::Kb::CVE_2012_2694.new,
|
364
|
+
Codesake::Dawn::Kb::CVE_2012_2695.new,
|
365
|
+
Codesake::Dawn::Kb::CVE_2012_3424.new,
|
366
|
+
Codesake::Dawn::Kb::CVE_2012_3463.new,
|
367
|
+
Codesake::Dawn::Kb::CVE_2012_3464.new,
|
368
|
+
Codesake::Dawn::Kb::CVE_2012_3465.new,
|
369
|
+
Codesake::Dawn::Kb::CVE_2012_4464.new,
|
370
|
+
Codesake::Dawn::Kb::CVE_2012_4466.new,
|
371
|
+
Codesake::Dawn::Kb::CVE_2012_4481.new,
|
372
|
+
Codesake::Dawn::Kb::CVE_2012_4522.new,
|
373
|
+
Codesake::Dawn::Kb::CVE_2012_5370.new,
|
374
|
+
Codesake::Dawn::Kb::CVE_2012_5371.new,
|
375
|
+
Codesake::Dawn::Kb::CVE_2012_5380.new,
|
376
|
+
Codesake::Dawn::Kb::CVE_2012_6109.new,
|
377
|
+
Codesake::Dawn::Kb::CVE_2012_6134.new,
|
378
|
+
Codesake::Dawn::Kb::CVE_2012_6496.new,
|
377
379
|
Codesake::Dawn::Kb::CVE_2012_6497.new,
|
378
380
|
Codesake::Dawn::Kb::CVE_2013_0155.new,
|
379
381
|
Codesake::Dawn::Kb::CVE_2013_0156.new,
|
@@ -400,29 +402,29 @@ module Codesake
|
|
400
402
|
Codesake::Dawn::Kb::CVE_2013_1802.new,
|
401
403
|
Codesake::Dawn::Kb::CVE_2013_1812.new,
|
402
404
|
Codesake::Dawn::Kb::CVE_2013_1821.new,
|
403
|
-
Codesake::Dawn::Kb::CVE_2013_1854.new,
|
404
|
-
Codesake::Dawn::Kb::CVE_2013_1855.new,
|
405
|
-
Codesake::Dawn::Kb::CVE_2013_1856.new,
|
406
|
-
Codesake::Dawn::Kb::CVE_2013_1857.new,
|
407
|
-
Codesake::Dawn::Kb::CVE_2013_1875.new,
|
408
|
-
Codesake::Dawn::Kb::CVE_2013_1898.new,
|
409
|
-
Codesake::Dawn::Kb::CVE_2013_1911.new,
|
410
|
-
Codesake::Dawn::Kb::CVE_2013_1933.new,
|
411
|
-
Codesake::Dawn::Kb::CVE_2013_1947.new,
|
412
|
-
Codesake::Dawn::Kb::CVE_2013_1948.new,
|
413
|
-
Codesake::Dawn::Kb::CVE_2013_2065.new,
|
414
|
-
Codesake::Dawn::Kb::CVE_2013_2090.new,
|
415
|
-
Codesake::Dawn::Kb::CVE_2013_2119.new,
|
416
|
-
Codesake::Dawn::Kb::CVE_2013_2512.new,
|
417
|
-
Codesake::Dawn::Kb::CVE_2013_2513.new,
|
418
|
-
Codesake::Dawn::Kb::CVE_2013_2516.new,
|
419
|
-
Codesake::Dawn::Kb::CVE_2013_2615.new,
|
420
|
-
Codesake::Dawn::Kb::CVE_2013_2616.new,
|
421
|
-
Codesake::Dawn::Kb::CVE_2013_2617.new,
|
422
|
-
Codesake::Dawn::Kb::CVE_2013_3221.new,
|
423
|
-
Codesake::Dawn::Kb::CVE_2013_4164.new,
|
424
|
-
Codesake::Dawn::Kb::CVE_2013_4203.new,
|
425
|
-
Codesake::Dawn::Kb::CVE_2013_4389.new,
|
405
|
+
Codesake::Dawn::Kb::CVE_2013_1854.new,
|
406
|
+
Codesake::Dawn::Kb::CVE_2013_1855.new,
|
407
|
+
Codesake::Dawn::Kb::CVE_2013_1856.new,
|
408
|
+
Codesake::Dawn::Kb::CVE_2013_1857.new,
|
409
|
+
Codesake::Dawn::Kb::CVE_2013_1875.new,
|
410
|
+
Codesake::Dawn::Kb::CVE_2013_1898.new,
|
411
|
+
Codesake::Dawn::Kb::CVE_2013_1911.new,
|
412
|
+
Codesake::Dawn::Kb::CVE_2013_1933.new,
|
413
|
+
Codesake::Dawn::Kb::CVE_2013_1947.new,
|
414
|
+
Codesake::Dawn::Kb::CVE_2013_1948.new,
|
415
|
+
Codesake::Dawn::Kb::CVE_2013_2065.new,
|
416
|
+
Codesake::Dawn::Kb::CVE_2013_2090.new,
|
417
|
+
Codesake::Dawn::Kb::CVE_2013_2119.new,
|
418
|
+
Codesake::Dawn::Kb::CVE_2013_2512.new,
|
419
|
+
Codesake::Dawn::Kb::CVE_2013_2513.new,
|
420
|
+
Codesake::Dawn::Kb::CVE_2013_2516.new,
|
421
|
+
Codesake::Dawn::Kb::CVE_2013_2615.new,
|
422
|
+
Codesake::Dawn::Kb::CVE_2013_2616.new,
|
423
|
+
Codesake::Dawn::Kb::CVE_2013_2617.new,
|
424
|
+
Codesake::Dawn::Kb::CVE_2013_3221.new,
|
425
|
+
Codesake::Dawn::Kb::CVE_2013_4164.new,
|
426
|
+
Codesake::Dawn::Kb::CVE_2013_4203.new,
|
427
|
+
Codesake::Dawn::Kb::CVE_2013_4389.new,
|
426
428
|
Codesake::Dawn::Kb::CVE_2013_4413.new,
|
427
429
|
Codesake::Dawn::Kb::CVE_2013_4457.new,
|
428
430
|
Codesake::Dawn::Kb::CVE_2013_4478.new,
|
@@ -430,26 +432,27 @@ module Codesake
|
|
430
432
|
Codesake::Dawn::Kb::CVE_2013_4489.new,
|
431
433
|
Codesake::Dawn::Kb::CVE_2013_4491.new,
|
432
434
|
Codesake::Dawn::Kb::CVE_2013_4492.new,
|
433
|
-
Codesake::Dawn::Kb::CVE_2013_4562.new,
|
434
|
-
Codesake::Dawn::Kb::CVE_2013_4593.new,
|
435
|
-
Codesake::Dawn::Kb::CVE_2013_5647.new,
|
436
|
-
Codesake::Dawn::Kb::CVE_2013_5671.new,
|
437
|
-
Codesake::Dawn::Kb::CVE_2013_6414.new,
|
438
|
-
Codesake::Dawn::Kb::CVE_2013_6415.new,
|
439
|
-
Codesake::Dawn::Kb::CVE_2013_6416.new,
|
440
|
-
Codesake::Dawn::Kb::CVE_2013_6417.new,
|
441
|
-
Codesake::Dawn::Kb::CVE_2013_6421.new,
|
442
|
-
Codesake::Dawn::Kb::CVE_2013_6459.new,
|
435
|
+
Codesake::Dawn::Kb::CVE_2013_4562.new,
|
436
|
+
Codesake::Dawn::Kb::CVE_2013_4593.new,
|
437
|
+
Codesake::Dawn::Kb::CVE_2013_5647.new,
|
438
|
+
Codesake::Dawn::Kb::CVE_2013_5671.new,
|
439
|
+
Codesake::Dawn::Kb::CVE_2013_6414.new,
|
440
|
+
Codesake::Dawn::Kb::CVE_2013_6415.new,
|
441
|
+
Codesake::Dawn::Kb::CVE_2013_6416.new,
|
442
|
+
Codesake::Dawn::Kb::CVE_2013_6417.new,
|
443
|
+
Codesake::Dawn::Kb::CVE_2013_6421.new,
|
444
|
+
Codesake::Dawn::Kb::CVE_2013_6459.new,
|
443
445
|
Codesake::Dawn::Kb::CVE_2013_6460.new,
|
444
446
|
Codesake::Dawn::Kb::CVE_2013_6461.new,
|
445
|
-
Codesake::Dawn::Kb::CVE_2013_7086.new,
|
446
|
-
Codesake::Dawn::Kb::CVE_2014_0036.new,
|
447
|
-
Codesake::Dawn::Kb::CVE_2014_0080.new,
|
448
|
-
Codesake::Dawn::Kb::CVE_2014_0081.new,
|
449
|
-
Codesake::Dawn::Kb::CVE_2014_0082.new,
|
447
|
+
Codesake::Dawn::Kb::CVE_2013_7086.new,
|
448
|
+
Codesake::Dawn::Kb::CVE_2014_0036.new,
|
449
|
+
Codesake::Dawn::Kb::CVE_2014_0080.new,
|
450
|
+
Codesake::Dawn::Kb::CVE_2014_0081.new,
|
451
|
+
Codesake::Dawn::Kb::CVE_2014_0082.new,
|
450
452
|
Codesake::Dawn::Kb::CVE_2014_1233.new,
|
451
453
|
Codesake::Dawn::Kb::CVE_2014_1234.new,
|
452
454
|
Codesake::Dawn::Kb::CVE_2014_2322.new,
|
455
|
+
Codesake::Dawn::Kb::CVE_2014_2525.new,
|
453
456
|
Codesake::Dawn::Kb::CVE_2014_2538.new,
|
454
457
|
]
|
455
458
|
# END @cve_security_checks array
|
@@ -458,8 +461,8 @@ module Codesake
|
|
458
461
|
Codesake::Dawn::Kb::OwaspRorCheatSheet::CommandInjection.new,
|
459
462
|
Codesake::Dawn::Kb::OwaspRorCheatSheet::Csrf.new,
|
460
463
|
Codesake::Dawn::Kb::OwaspRorCheatSheet::SessionStoredInDatabase.new,
|
461
|
-
Codesake::Dawn::Kb::OwaspRorCheatSheet::MassAssignmentInModel.new,
|
462
|
-
Codesake::Dawn::Kb::OwaspRorCheatSheet::SecurityRelatedHeaders.new,
|
464
|
+
Codesake::Dawn::Kb::OwaspRorCheatSheet::MassAssignmentInModel.new,
|
465
|
+
Codesake::Dawn::Kb::OwaspRorCheatSheet::SecurityRelatedHeaders.new,
|
463
466
|
Codesake::Dawn::Kb::OwaspRorCheatSheet::CheckForSafeRedirectAndForward.new,
|
464
467
|
Codesake::Dawn::Kb::OwaspRorCheatSheet::SensitiveFiles.new,
|
465
468
|
]
|
@@ -19,10 +19,10 @@ module Codesake
|
|
19
19
|
# | "Luigi" | 7.0.0 |
|
20
20
|
# | "Doc Hudson" | 8.0.0 |
|
21
21
|
|
22
|
-
VERSION = "1.1.0
|
22
|
+
VERSION = "1.1.0"
|
23
23
|
CODENAME = "Lightning McQueen"
|
24
24
|
#RELEASE = "(development)"
|
25
|
-
RELEASE = "
|
25
|
+
RELEASE = "20140404"
|
26
26
|
|
27
27
|
end
|
28
28
|
end
|
@@ -882,4 +882,9 @@ end
|
|
882
882
|
sc.should_not be_nil
|
883
883
|
sc.class.should == Codesake::Dawn::Kb::CVE_2013_4203
|
884
884
|
end
|
885
|
+
it "must have test for CVE-2014-2525" do
|
886
|
+
sc = kb.find("CVE-2014-2525")
|
887
|
+
sc.should_not be_nil
|
888
|
+
sc.class.should == Codesake::Dawn::Kb::CVE_2014_2525
|
889
|
+
end
|
885
890
|
end
|
@@ -4,13 +4,12 @@ describe "The CVE-2014-2538 vulnerability" do
|
|
4
4
|
@check = Codesake::Dawn::Kb::CVE_2014_2538.new
|
5
5
|
# @check.debug = true
|
6
6
|
end
|
7
|
-
it "is reported when rack-ssl vulnerable version it has been found (1.
|
8
|
-
@check.dependencies = [{:name=>'rack-ssl', :version=>'1.
|
7
|
+
it "is reported when rack-ssl vulnerable version it has been found (1.3.9)" do
|
8
|
+
@check.dependencies = [{:name=>'rack-ssl', :version=>'1.3.9'}]
|
9
9
|
@check.vuln?.should be_true
|
10
10
|
end
|
11
|
-
it "is reported when rack-ssl not vulnerable version it has been found (1.
|
12
|
-
@check.dependencies = [{:name=>'rack-ssl', :version=>'1.
|
11
|
+
it "is reported when rack-ssl not vulnerable version it has been found (1.4.0)" do
|
12
|
+
@check.dependencies = [{:name=>'rack-ssl', :version=>'1.4.0'}]
|
13
13
|
@check.vuln?.should be_false
|
14
14
|
end
|
15
|
-
it "must be filled with CVSS information"
|
16
15
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: codesake-dawn
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paolo Perego
|
@@ -30,7 +30,7 @@ cert_chain:
|
|
30
30
|
Fh7BfxFDBZdj1mI2V+I+IYYMPKIouvwX3r7NTZgZ4TYuKVpOk9VSCxzhrPhnl4kb
|
31
31
|
1LyVQIFlhF6nL0casp0ixer8N60=
|
32
32
|
-----END CERTIFICATE-----
|
33
|
-
date: 2014-
|
33
|
+
date: 2014-04-04 00:00:00.000000000 Z
|
34
34
|
dependencies:
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
36
|
name: codesake-commons
|
@@ -282,10 +282,12 @@ files:
|
|
282
282
|
- bin/dawn
|
283
283
|
- certs/paolo_at_codesake_dot_com.pem
|
284
284
|
- checksum/.placeholder
|
285
|
+
- checksum/codesake-dawn-1.1.0.gem.sha512
|
285
286
|
- checksum/codesake-dawn-1.1.0.rc1.gem.sha512
|
286
287
|
- codesake-dawn.gemspec
|
287
288
|
- doc/codesake-dawn.yaml.sample
|
288
289
|
- doc/dawn_1_0_announcement.md
|
290
|
+
- doc/dawn_1_1_announcement.md
|
289
291
|
- features/dawn_complains_about_an_incorrect_command_line.feature.disabled
|
290
292
|
- features/dawn_scan_a_secure_sinatra_app.feature.disabled
|
291
293
|
- features/dawn_scan_a_vulnerable_sinatra_app.feature.disabled
|
@@ -457,6 +459,7 @@ files:
|
|
457
459
|
- lib/codesake/dawn/kb/cve_2014_1233.rb
|
458
460
|
- lib/codesake/dawn/kb/cve_2014_1234.rb
|
459
461
|
- lib/codesake/dawn/kb/cve_2014_2322.rb
|
462
|
+
- lib/codesake/dawn/kb/cve_2014_2525.rb
|
460
463
|
- lib/codesake/dawn/kb/cve_2014_2538.rb
|
461
464
|
- lib/codesake/dawn/kb/dependency_check.rb
|
462
465
|
- lib/codesake/dawn/kb/deprecation_check.rb
|
@@ -557,9 +560,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
557
560
|
version: 1.9.2
|
558
561
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
559
562
|
requirements:
|
560
|
-
- - '
|
563
|
+
- - '>='
|
561
564
|
- !ruby/object:Gem::Version
|
562
|
-
version:
|
565
|
+
version: '0'
|
563
566
|
requirements: []
|
564
567
|
rubyforge_project:
|
565
568
|
rubygems_version: 2.1.11
|
metadata.gz.sig
CHANGED
Binary file
|