dawnscanner 1.2.99

Sign up to get free protection for your applications and to get access to all the features.
Files changed (306) hide show
  1. checksums.yaml +7 -0
  2. checksums.yaml.gz.sig +4 -0
  3. data.tar.gz.sig +0 -0
  4. data/.gitignore +19 -0
  5. data/.ruby-gemset +1 -0
  6. data/.ruby-version +1 -0
  7. data/.travis.yml +8 -0
  8. data/Changelog.md +412 -0
  9. data/Gemfile +4 -0
  10. data/KnowledgeBase.md +213 -0
  11. data/LICENSE.txt +22 -0
  12. data/README.md +354 -0
  13. data/Rakefile +250 -0
  14. data/Roadmap.md +59 -0
  15. data/bin/dawn +210 -0
  16. data/certs/paolo_at_codesake_dot_com.pem +21 -0
  17. data/checksum/.placeholder +0 -0
  18. data/checksum/codesake-dawn-1.1.0.gem.sha512 +1 -0
  19. data/checksum/codesake-dawn-1.1.0.rc1.gem.sha512 +1 -0
  20. data/checksum/codesake-dawn-1.1.1.gem.sha512 +1 -0
  21. data/checksum/codesake-dawn-1.1.2.gem.sha512 +1 -0
  22. data/checksum/codesake-dawn-1.1.3.gem.sha512 +1 -0
  23. data/checksum/codesake-dawn-1.2.0.gem.sha512 +1 -0
  24. data/checksum/codesake-dawn-1.2.99.gem.sha512 +1 -0
  25. data/dawnscanner.gemspec +43 -0
  26. data/doc/codesake-dawn.yaml.sample +26 -0
  27. data/doc/dawn_1_0_announcement.md +139 -0
  28. data/doc/dawn_1_1_announcement.md +67 -0
  29. data/doc/dawn_1_2_announcement.md +69 -0
  30. data/features/dawn_complains_about_an_incorrect_command_line.feature.disabled +21 -0
  31. data/features/dawn_scan_a_secure_sinatra_app.feature.disabled +31 -0
  32. data/features/dawn_scan_a_vulnerable_sinatra_app.feature.disabled +36 -0
  33. data/features/step_definition/dawn_steps.rb +19 -0
  34. data/features/support/env.rb +1 -0
  35. data/lib/codesake-dawn.rb +12 -0
  36. data/lib/codesake/dawn/core.rb +175 -0
  37. data/lib/codesake/dawn/engine.rb +380 -0
  38. data/lib/codesake/dawn/gemfile_lock.rb +12 -0
  39. data/lib/codesake/dawn/kb/basic_check.rb +228 -0
  40. data/lib/codesake/dawn/kb/combo_check.rb +64 -0
  41. data/lib/codesake/dawn/kb/cve_2004_0755.rb +32 -0
  42. data/lib/codesake/dawn/kb/cve_2004_0983.rb +30 -0
  43. data/lib/codesake/dawn/kb/cve_2005_1992.rb +30 -0
  44. data/lib/codesake/dawn/kb/cve_2005_2337.rb +32 -0
  45. data/lib/codesake/dawn/kb/cve_2006_1931.rb +32 -0
  46. data/lib/codesake/dawn/kb/cve_2006_2582.rb +30 -0
  47. data/lib/codesake/dawn/kb/cve_2006_3694.rb +31 -0
  48. data/lib/codesake/dawn/kb/cve_2006_4112.rb +29 -0
  49. data/lib/codesake/dawn/kb/cve_2006_5467.rb +30 -0
  50. data/lib/codesake/dawn/kb/cve_2006_6303.rb +30 -0
  51. data/lib/codesake/dawn/kb/cve_2006_6852.rb +29 -0
  52. data/lib/codesake/dawn/kb/cve_2006_6979.rb +31 -0
  53. data/lib/codesake/dawn/kb/cve_2007_0469.rb +29 -0
  54. data/lib/codesake/dawn/kb/cve_2007_5162.rb +30 -0
  55. data/lib/codesake/dawn/kb/cve_2007_5379.rb +29 -0
  56. data/lib/codesake/dawn/kb/cve_2007_5380.rb +29 -0
  57. data/lib/codesake/dawn/kb/cve_2007_5770.rb +32 -0
  58. data/lib/codesake/dawn/kb/cve_2007_6077.rb +31 -0
  59. data/lib/codesake/dawn/kb/cve_2007_6612.rb +30 -0
  60. data/lib/codesake/dawn/kb/cve_2008_1145.rb +40 -0
  61. data/lib/codesake/dawn/kb/cve_2008_1891.rb +40 -0
  62. data/lib/codesake/dawn/kb/cve_2008_2376.rb +32 -0
  63. data/lib/codesake/dawn/kb/cve_2008_2662.rb +35 -0
  64. data/lib/codesake/dawn/kb/cve_2008_2663.rb +34 -0
  65. data/lib/codesake/dawn/kb/cve_2008_2664.rb +35 -0
  66. data/lib/codesake/dawn/kb/cve_2008_2725.rb +33 -0
  67. data/lib/codesake/dawn/kb/cve_2008_3655.rb +39 -0
  68. data/lib/codesake/dawn/kb/cve_2008_3657.rb +39 -0
  69. data/lib/codesake/dawn/kb/cve_2008_3790.rb +32 -0
  70. data/lib/codesake/dawn/kb/cve_2008_3905.rb +38 -0
  71. data/lib/codesake/dawn/kb/cve_2008_4094.rb +29 -0
  72. data/lib/codesake/dawn/kb/cve_2008_4310.rb +103 -0
  73. data/lib/codesake/dawn/kb/cve_2008_5189.rb +29 -0
  74. data/lib/codesake/dawn/kb/cve_2008_7248.rb +29 -0
  75. data/lib/codesake/dawn/kb/cve_2009_4078.rb +31 -0
  76. data/lib/codesake/dawn/kb/cve_2009_4124.rb +32 -0
  77. data/lib/codesake/dawn/kb/cve_2009_4214.rb +29 -0
  78. data/lib/codesake/dawn/kb/cve_2010_1330.rb +30 -0
  79. data/lib/codesake/dawn/kb/cve_2010_2489.rb +62 -0
  80. data/lib/codesake/dawn/kb/cve_2010_3933.rb +29 -0
  81. data/lib/codesake/dawn/kb/cve_2011_0188.rb +69 -0
  82. data/lib/codesake/dawn/kb/cve_2011_0446.rb +30 -0
  83. data/lib/codesake/dawn/kb/cve_2011_0447.rb +30 -0
  84. data/lib/codesake/dawn/kb/cve_2011_0739.rb +30 -0
  85. data/lib/codesake/dawn/kb/cve_2011_0995.rb +63 -0
  86. data/lib/codesake/dawn/kb/cve_2011_1004.rb +36 -0
  87. data/lib/codesake/dawn/kb/cve_2011_1005.rb +33 -0
  88. data/lib/codesake/dawn/kb/cve_2011_2197.rb +29 -0
  89. data/lib/codesake/dawn/kb/cve_2011_2686.rb +31 -0
  90. data/lib/codesake/dawn/kb/cve_2011_2705.rb +34 -0
  91. data/lib/codesake/dawn/kb/cve_2011_2929.rb +29 -0
  92. data/lib/codesake/dawn/kb/cve_2011_2930.rb +30 -0
  93. data/lib/codesake/dawn/kb/cve_2011_2931.rb +32 -0
  94. data/lib/codesake/dawn/kb/cve_2011_2932.rb +29 -0
  95. data/lib/codesake/dawn/kb/cve_2011_3009.rb +30 -0
  96. data/lib/codesake/dawn/kb/cve_2011_3186.rb +31 -0
  97. data/lib/codesake/dawn/kb/cve_2011_3187.rb +31 -0
  98. data/lib/codesake/dawn/kb/cve_2011_4319.rb +31 -0
  99. data/lib/codesake/dawn/kb/cve_2011_4815.rb +30 -0
  100. data/lib/codesake/dawn/kb/cve_2011_5036.rb +28 -0
  101. data/lib/codesake/dawn/kb/cve_2012_1098.rb +32 -0
  102. data/lib/codesake/dawn/kb/cve_2012_1099.rb +29 -0
  103. data/lib/codesake/dawn/kb/cve_2012_1241.rb +29 -0
  104. data/lib/codesake/dawn/kb/cve_2012_2139.rb +28 -0
  105. data/lib/codesake/dawn/kb/cve_2012_2140.rb +29 -0
  106. data/lib/codesake/dawn/kb/cve_2012_2660.rb +30 -0
  107. data/lib/codesake/dawn/kb/cve_2012_2661.rb +29 -0
  108. data/lib/codesake/dawn/kb/cve_2012_2671.rb +30 -0
  109. data/lib/codesake/dawn/kb/cve_2012_2694.rb +32 -0
  110. data/lib/codesake/dawn/kb/cve_2012_2695.rb +29 -0
  111. data/lib/codesake/dawn/kb/cve_2012_3424.rb +31 -0
  112. data/lib/codesake/dawn/kb/cve_2012_3463.rb +29 -0
  113. data/lib/codesake/dawn/kb/cve_2012_3464.rb +29 -0
  114. data/lib/codesake/dawn/kb/cve_2012_3465.rb +28 -0
  115. data/lib/codesake/dawn/kb/cve_2012_4464.rb +29 -0
  116. data/lib/codesake/dawn/kb/cve_2012_4466.rb +29 -0
  117. data/lib/codesake/dawn/kb/cve_2012_4481.rb +28 -0
  118. data/lib/codesake/dawn/kb/cve_2012_4522.rb +29 -0
  119. data/lib/codesake/dawn/kb/cve_2012_5370.rb +29 -0
  120. data/lib/codesake/dawn/kb/cve_2012_5371.rb +29 -0
  121. data/lib/codesake/dawn/kb/cve_2012_5380.rb +30 -0
  122. data/lib/codesake/dawn/kb/cve_2012_6109.rb +27 -0
  123. data/lib/codesake/dawn/kb/cve_2012_6134.rb +29 -0
  124. data/lib/codesake/dawn/kb/cve_2012_6496.rb +30 -0
  125. data/lib/codesake/dawn/kb/cve_2012_6497.rb +30 -0
  126. data/lib/codesake/dawn/kb/cve_2013_0155.rb +31 -0
  127. data/lib/codesake/dawn/kb/cve_2013_0156.rb +29 -0
  128. data/lib/codesake/dawn/kb/cve_2013_0162.rb +30 -0
  129. data/lib/codesake/dawn/kb/cve_2013_0175.rb +29 -0
  130. data/lib/codesake/dawn/kb/cve_2013_0183.rb +27 -0
  131. data/lib/codesake/dawn/kb/cve_2013_0184.rb +27 -0
  132. data/lib/codesake/dawn/kb/cve_2013_0233.rb +28 -0
  133. data/lib/codesake/dawn/kb/cve_2013_0256.rb +61 -0
  134. data/lib/codesake/dawn/kb/cve_2013_0262.rb +28 -0
  135. data/lib/codesake/dawn/kb/cve_2013_0263.rb +28 -0
  136. data/lib/codesake/dawn/kb/cve_2013_0269.rb +29 -0
  137. data/lib/codesake/dawn/kb/cve_2013_0276.rb +30 -0
  138. data/lib/codesake/dawn/kb/cve_2013_0277.rb +27 -0
  139. data/lib/codesake/dawn/kb/cve_2013_0284.rb +29 -0
  140. data/lib/codesake/dawn/kb/cve_2013_0285.rb +29 -0
  141. data/lib/codesake/dawn/kb/cve_2013_0333.rb +30 -0
  142. data/lib/codesake/dawn/kb/cve_2013_1607.rb +27 -0
  143. data/lib/codesake/dawn/kb/cve_2013_1655.rb +67 -0
  144. data/lib/codesake/dawn/kb/cve_2013_1656.rb +30 -0
  145. data/lib/codesake/dawn/kb/cve_2013_1756.rb +28 -0
  146. data/lib/codesake/dawn/kb/cve_2013_1800.rb +28 -0
  147. data/lib/codesake/dawn/kb/cve_2013_1801.rb +29 -0
  148. data/lib/codesake/dawn/kb/cve_2013_1802.rb +29 -0
  149. data/lib/codesake/dawn/kb/cve_2013_1812.rb +29 -0
  150. data/lib/codesake/dawn/kb/cve_2013_1821.rb +30 -0
  151. data/lib/codesake/dawn/kb/cve_2013_1854.rb +28 -0
  152. data/lib/codesake/dawn/kb/cve_2013_1855.rb +27 -0
  153. data/lib/codesake/dawn/kb/cve_2013_1856.rb +28 -0
  154. data/lib/codesake/dawn/kb/cve_2013_1857.rb +29 -0
  155. data/lib/codesake/dawn/kb/cve_2013_1875.rb +29 -0
  156. data/lib/codesake/dawn/kb/cve_2013_1898.rb +29 -0
  157. data/lib/codesake/dawn/kb/cve_2013_1911.rb +30 -0
  158. data/lib/codesake/dawn/kb/cve_2013_1933.rb +29 -0
  159. data/lib/codesake/dawn/kb/cve_2013_1947.rb +29 -0
  160. data/lib/codesake/dawn/kb/cve_2013_1948.rb +29 -0
  161. data/lib/codesake/dawn/kb/cve_2013_2065.rb +31 -0
  162. data/lib/codesake/dawn/kb/cve_2013_2090.rb +30 -0
  163. data/lib/codesake/dawn/kb/cve_2013_2105.rb +28 -0
  164. data/lib/codesake/dawn/kb/cve_2013_2119.rb +29 -0
  165. data/lib/codesake/dawn/kb/cve_2013_2512.rb +28 -0
  166. data/lib/codesake/dawn/kb/cve_2013_2513.rb +27 -0
  167. data/lib/codesake/dawn/kb/cve_2013_2516.rb +28 -0
  168. data/lib/codesake/dawn/kb/cve_2013_2615.rb +29 -0
  169. data/lib/codesake/dawn/kb/cve_2013_2616.rb +29 -0
  170. data/lib/codesake/dawn/kb/cve_2013_2617.rb +30 -0
  171. data/lib/codesake/dawn/kb/cve_2013_3221.rb +29 -0
  172. data/lib/codesake/dawn/kb/cve_2013_4164.rb +32 -0
  173. data/lib/codesake/dawn/kb/cve_2013_4203.rb +27 -0
  174. data/lib/codesake/dawn/kb/cve_2013_4389.rb +28 -0
  175. data/lib/codesake/dawn/kb/cve_2013_4413.rb +29 -0
  176. data/lib/codesake/dawn/kb/cve_2013_4457.rb +31 -0
  177. data/lib/codesake/dawn/kb/cve_2013_4478.rb +28 -0
  178. data/lib/codesake/dawn/kb/cve_2013_4479.rb +28 -0
  179. data/lib/codesake/dawn/kb/cve_2013_4489.rb +30 -0
  180. data/lib/codesake/dawn/kb/cve_2013_4491.rb +30 -0
  181. data/lib/codesake/dawn/kb/cve_2013_4492.rb +31 -0
  182. data/lib/codesake/dawn/kb/cve_2013_4562.rb +29 -0
  183. data/lib/codesake/dawn/kb/cve_2013_4593.rb +29 -0
  184. data/lib/codesake/dawn/kb/cve_2013_5647.rb +31 -0
  185. data/lib/codesake/dawn/kb/cve_2013_5671.rb +28 -0
  186. data/lib/codesake/dawn/kb/cve_2013_6414.rb +31 -0
  187. data/lib/codesake/dawn/kb/cve_2013_6415.rb +30 -0
  188. data/lib/codesake/dawn/kb/cve_2013_6416.rb +31 -0
  189. data/lib/codesake/dawn/kb/cve_2013_6417.rb +31 -0
  190. data/lib/codesake/dawn/kb/cve_2013_6421.rb +30 -0
  191. data/lib/codesake/dawn/kb/cve_2013_6459.rb +30 -0
  192. data/lib/codesake/dawn/kb/cve_2013_6460.rb +55 -0
  193. data/lib/codesake/dawn/kb/cve_2013_6461.rb +59 -0
  194. data/lib/codesake/dawn/kb/cve_2013_7086.rb +29 -0
  195. data/lib/codesake/dawn/kb/cve_2014_0036.rb +29 -0
  196. data/lib/codesake/dawn/kb/cve_2014_0080.rb +30 -0
  197. data/lib/codesake/dawn/kb/cve_2014_0081.rb +28 -0
  198. data/lib/codesake/dawn/kb/cve_2014_0082.rb +29 -0
  199. data/lib/codesake/dawn/kb/cve_2014_0130.rb +28 -0
  200. data/lib/codesake/dawn/kb/cve_2014_1233.rb +29 -0
  201. data/lib/codesake/dawn/kb/cve_2014_1234.rb +28 -0
  202. data/lib/codesake/dawn/kb/cve_2014_2322.rb +30 -0
  203. data/lib/codesake/dawn/kb/cve_2014_2525.rb +61 -0
  204. data/lib/codesake/dawn/kb/cve_2014_2538.rb +28 -0
  205. data/lib/codesake/dawn/kb/cve_2014_3482.rb +30 -0
  206. data/lib/codesake/dawn/kb/cve_2014_3483.rb +29 -0
  207. data/lib/codesake/dawn/kb/dependency_check.rb +86 -0
  208. data/lib/codesake/dawn/kb/deprecation_check.rb +40 -0
  209. data/lib/codesake/dawn/kb/not_revised_code.rb +24 -0
  210. data/lib/codesake/dawn/kb/operating_system_check.rb +98 -0
  211. data/lib/codesake/dawn/kb/osvdb_105971.rb +31 -0
  212. data/lib/codesake/dawn/kb/osvdb_108530.rb +29 -0
  213. data/lib/codesake/dawn/kb/osvdb_108563.rb +30 -0
  214. data/lib/codesake/dawn/kb/osvdb_108569.rb +30 -0
  215. data/lib/codesake/dawn/kb/osvdb_108570.rb +29 -0
  216. data/lib/codesake/dawn/kb/owasp_ror_cheatsheet.rb +41 -0
  217. data/lib/codesake/dawn/kb/owasp_ror_cheatsheet/check_for_backup_files.rb +22 -0
  218. data/lib/codesake/dawn/kb/owasp_ror_cheatsheet/check_for_safe_redirect_and_forward.rb +59 -0
  219. data/lib/codesake/dawn/kb/owasp_ror_cheatsheet/command_injection.rb +30 -0
  220. data/lib/codesake/dawn/kb/owasp_ror_cheatsheet/csrf.rb +31 -0
  221. data/lib/codesake/dawn/kb/owasp_ror_cheatsheet/mass_assignment_in_model.rb +35 -0
  222. data/lib/codesake/dawn/kb/owasp_ror_cheatsheet/security_related_headers.rb +38 -0
  223. data/lib/codesake/dawn/kb/owasp_ror_cheatsheet/sensitive_files.rb +31 -0
  224. data/lib/codesake/dawn/kb/owasp_ror_cheatsheet/session_stored_in_database.rb +33 -0
  225. data/lib/codesake/dawn/kb/pattern_match_check.rb +129 -0
  226. data/lib/codesake/dawn/kb/ruby_version_check.rb +91 -0
  227. data/lib/codesake/dawn/kb/simpleform_xss_20131129.rb +30 -0
  228. data/lib/codesake/dawn/kb/version_check.rb +418 -0
  229. data/lib/codesake/dawn/knowledge_base.rb +513 -0
  230. data/lib/codesake/dawn/padrino.rb +82 -0
  231. data/lib/codesake/dawn/rails.rb +17 -0
  232. data/lib/codesake/dawn/railtie.rb +9 -0
  233. data/lib/codesake/dawn/reporter.rb +280 -0
  234. data/lib/codesake/dawn/sinatra.rb +129 -0
  235. data/lib/codesake/dawn/tasks.rb +27 -0
  236. data/lib/codesake/dawn/utils.rb +21 -0
  237. data/lib/codesake/dawn/version.rb +28 -0
  238. data/lib/tasks/codesake-dawn_tasks.rake +1 -0
  239. data/spec/lib/dawn/codesake_core_spec.rb +9 -0
  240. data/spec/lib/dawn/codesake_knowledgebase_spec.rb +940 -0
  241. data/spec/lib/dawn/codesake_padrino_engine_disabled.rb +45 -0
  242. data/spec/lib/dawn/codesake_rails_engine_disabled.rb +12 -0
  243. data/spec/lib/dawn/codesake_sinatra_engine_disabled.rb +128 -0
  244. data/spec/lib/kb/codesake_cve_2013_0175_spec.rb +35 -0
  245. data/spec/lib/kb/codesake_cve_2013_4457_spec.rb +41 -0
  246. data/spec/lib/kb/codesake_dependency_version_check_spec.rb +76 -0
  247. data/spec/lib/kb/codesake_deprecation_check_spec.rb +56 -0
  248. data/spec/lib/kb/codesake_ruby_version_check_spec.rb +40 -0
  249. data/spec/lib/kb/codesake_version_check_spec.rb +165 -0
  250. data/spec/lib/kb/cve_2011_2705_spec.rb +35 -0
  251. data/spec/lib/kb/cve_2011_2930_spec.rb +31 -0
  252. data/spec/lib/kb/cve_2011_3009_spec.rb +25 -0
  253. data/spec/lib/kb/cve_2011_3187_spec.rb +24 -0
  254. data/spec/lib/kb/cve_2011_4319_spec.rb +44 -0
  255. data/spec/lib/kb/cve_2011_5036_spec.rb +95 -0
  256. data/spec/lib/kb/cve_2012_1098_spec.rb +36 -0
  257. data/spec/lib/kb/cve_2012_2139_spec.rb +20 -0
  258. data/spec/lib/kb/cve_2012_2671_spec.rb +23 -0
  259. data/spec/lib/kb/cve_2012_6109_spec.rb +112 -0
  260. data/spec/lib/kb/cve_2013_0162_spec.rb +23 -0
  261. data/spec/lib/kb/cve_2013_0183_spec.rb +54 -0
  262. data/spec/lib/kb/cve_2013_0184_spec.rb +115 -0
  263. data/spec/lib/kb/cve_2013_0256_spec.rb +34 -0
  264. data/spec/lib/kb/cve_2013_0262_spec.rb +44 -0
  265. data/spec/lib/kb/cve_2013_0263_spec.rb +11 -0
  266. data/spec/lib/kb/cve_2013_1607_spec.rb +15 -0
  267. data/spec/lib/kb/cve_2013_1655_spec.rb +31 -0
  268. data/spec/lib/kb/cve_2013_1756_spec.rb +23 -0
  269. data/spec/lib/kb/cve_2013_2090_spec.rb +15 -0
  270. data/spec/lib/kb/cve_2013_2105_spec.rb +11 -0
  271. data/spec/lib/kb/cve_2013_2119_spec.rb +27 -0
  272. data/spec/lib/kb/cve_2013_2512_spec.rb +15 -0
  273. data/spec/lib/kb/cve_2013_2513_spec.rb +15 -0
  274. data/spec/lib/kb/cve_2013_2516_spec.rb +15 -0
  275. data/spec/lib/kb/cve_2013_4203_spec.rb +15 -0
  276. data/spec/lib/kb/cve_2013_4413_spec.rb +16 -0
  277. data/spec/lib/kb/cve_2013_4489_spec.rb +63 -0
  278. data/spec/lib/kb/cve_2013_4593_spec.rb +16 -0
  279. data/spec/lib/kb/cve_2013_5647_spec.rb +19 -0
  280. data/spec/lib/kb/cve_2013_5671_spec.rb +27 -0
  281. data/spec/lib/kb/cve_2013_6416_spec.rb +31 -0
  282. data/spec/lib/kb/cve_2013_6459_spec.rb +15 -0
  283. data/spec/lib/kb/cve_2013_7086_spec.rb +22 -0
  284. data/spec/lib/kb/cve_2014_0036_spec.rb +15 -0
  285. data/spec/lib/kb/cve_2014_0080_spec.rb +28 -0
  286. data/spec/lib/kb/cve_2014_0081_spec.rb +68 -0
  287. data/spec/lib/kb/cve_2014_0082_spec.rb +52 -0
  288. data/spec/lib/kb/cve_2014_0130_spec.rb +19 -0
  289. data/spec/lib/kb/cve_2014_1233_spec.rb +15 -0
  290. data/spec/lib/kb/cve_2014_1234_spec.rb +16 -0
  291. data/spec/lib/kb/cve_2014_2322_spec.rb +15 -0
  292. data/spec/lib/kb/cve_2014_2538_spec.rb +15 -0
  293. data/spec/lib/kb/cve_2014_3482_spec.rb +15 -0
  294. data/spec/lib/kb/cve_2014_3483_spec.rb +23 -0
  295. data/spec/lib/kb/osvdb_105971_spec.rb +15 -0
  296. data/spec/lib/kb/osvdb_108530_spec.rb +22 -0
  297. data/spec/lib/kb/osvdb_108563_spec.rb +18 -0
  298. data/spec/lib/kb/osvdb_108569_spec.rb +17 -0
  299. data/spec/lib/kb/osvdb_108570_spec.rb +17 -0
  300. data/spec/lib/kb/owasp_ror_cheatsheet_disabled.rb +56 -0
  301. data/spec/spec_helper.rb +11 -0
  302. data/support/bootstrap.js +2027 -0
  303. data/support/bootstrap.min.css +9 -0
  304. data/support/codesake.css +63 -0
  305. metadata +659 -0
  306. metadata.gz.sig +0 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 96652166e96b4230261eedd3e31210b1629936de
4
+ data.tar.gz: 094ed8dd07f42d69b6d3792f427aaab9dc048654
5
+ SHA512:
6
+ metadata.gz: a1563bc6716a6d525697af3551211ef7403d11249bdf493aa86b0e63a16751018898aeed7186f85cc572de867d0420757982bba3580e9adcd915a21ac79f7131
7
+ data.tar.gz: c5268d7a968d472c144fa17bb86795dc2e2d0e970db5e2575672345d5721735da35c2716669f976661fd04642a209343a1a1d8213db9cdf61a0b57e51af53903
@@ -0,0 +1,4 @@
1
+
2
+ ������8ٕ[01w��*�hQ5Ȃ�q��М�
3
+ R���.���M�?�X�n~���$������s��GK$��<��^���ٶ�X���&�鸧�t�-���+�]��@��yv�W�D��>�BQ��o͊�(
4
+ �L�S瓮 Es
Binary file
@@ -0,0 +1,19 @@
1
+ .DS_Store
2
+ *.log
3
+ *.sw?
4
+ *.gem
5
+ *.rbc
6
+ .bundle
7
+ .config
8
+ .yardoc
9
+ Gemfile.lock
10
+ InstalledFiles
11
+ _yardoc
12
+ coverage
13
+ lib/bundler/man
14
+ pkg
15
+ rdoc
16
+ spec/reports
17
+ test/tmp
18
+ test/version_tmp
19
+ tmp
@@ -0,0 +1 @@
1
+ codesake
@@ -0,0 +1 @@
1
+ 2.0.0
@@ -0,0 +1,8 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.1.0
4
+ - 2.0.0
5
+ - 1.9.3
6
+ - 1.9.2
7
+ - ruby-head
8
+ - rbx
@@ -0,0 +1,412 @@
1
+ # Codesake Dawn - changelog
2
+
3
+ Codesake::Dawn is a static analysis security scanner for ruby written web applications.
4
+ It supports [Sinatra](http://www.sinatrarb.com),
5
+ [Padrino](http://www.padrinorb.com) and [Ruby on Rails](http://rubyonrails.org)
6
+ frameworks.
7
+
8
+ _latest update: Fri Jul 11 18:06:30 CEST 2014_
9
+
10
+ ## Version 1.2.99 - codename: Lightning McQueen (2015-01-07)
11
+
12
+ * Add a deprecation message. This is the last codesake-dawn release. New gem
13
+ will be called dawnscanner.
14
+
15
+ ## Version 1.2.0 - codename: Lightning McQueen (2014-07-14)
16
+
17
+ * Adding a check for OSVDB-108569: information disclosure in backup_checksum
18
+ gem (issue #69)
19
+ * Fix issue #74. Now BasicChack has its own cve, osvdb attributes and a rake
20
+ task will perform a sanity check if those values have been initialized
21
+ * Fix issue #62 about codesake-dawn config filename
22
+ * Adding a check for CVE-2013-2105: HTML injection in show_in_browser rubygem
23
+ * Fixing issue #68. I moved some file variable operation after the check for
24
+ nil value. I can't reproduce on my station the offending bug :-(
25
+ * Adding a check for OSVDB-108570: arbitrary command execution for
26
+ backup_checksum gem (issue #70)
27
+ * Adding a check for OSVDB-108530: remote code execution for kajam gem (issue
28
+ #71)
29
+ * Adding a check for OSVDB-108563: remote code execution in gyazo rubygem
30
+ (issue #72)
31
+ * Adding a check for CVE-2014-3482: SQL Injection on Rails 3.2.x due to
32
+ PostgreSQL adapter for active record (issue #73)
33
+ * Adding a check for CVE-2014-3483: Ruby on Rails 4.x SQL Injection due to
34
+ PostgreSQL adapter (issue #75)
35
+ * Fix issue #76 about codesake-dawn gem name being changed. On November 1st,
36
+ 2014 we will rename the codesake-dawn name to just 'dawn' cleaning up also
37
+ the namespace.
38
+
39
+ ## Version 1.1.3 - codename: Lightning McQueen (2014-05-06)
40
+
41
+ * Adding a check for CVE-2014-0130: directory traversal for ruby on rails
42
+
43
+ ## Version 1.1.2 - codename: Lightning McQueen (2014-04-22)
44
+
45
+ * Adding a check for OSVDB-105971: remote code execution for sfpagent ruby gem
46
+
47
+ ## Version 1.1.1 - codename: Lightning McQueen (2014-04-11)
48
+
49
+ * Fixing issue #52. The trailing '/' must be removed in File.exist? A begin -
50
+ rescue block was added so to handle any exception. The default configuration
51
+ is returned in case of error.
52
+ * Fixed issue #53. Both get_rbenv_ruby_ver and get_rvm_ruby_ver doesn't prepand
53
+ @target when trying to fetch ruby version file content.
54
+ * Fix issue #54. There were some unconsistence in command line call when
55
+ forcing the MVC instead of autodetect it. I refactored the part and it was
56
+ back to work now.
57
+ * Fixed issue #55. Introducing yaml config file, gemfile_name default value is
58
+ empty string not nil anymore. Therefore bin/dawn must check for emptyness not
59
+ for nil value.
60
+ * Issue #57: @zoltrain made a pull request to add vulnerability properties to
61
+ json output in reporter class.
62
+ * Issue #38. During the discussion, @shaneog pointed out that
63
+ --disable-ror-cheatsheet flag worked but disabling the whole family from the
64
+ YAML config file didn't. Due to a silly typo the magic didn't happened. Fixed
65
+ now.
66
+
67
+ ## Version 1.1.0 - codename: Lightning McQueen (2014-04-04)
68
+
69
+ * Added a check for CVE-2011-5036
70
+ * Added a check for CVE-2012-6109
71
+ * Added a check for CVE-2013-0183
72
+ * Added a check for CVE-2013-0184
73
+ * Added a check for CVE-2013-0262
74
+ * Added a check for CVE-2013-1607
75
+ * Added a check for CVE-2013-2512
76
+ * Added a check for CVE-2013-2513
77
+ * Added a check for CVE-2013-2516
78
+ * Added a check for CVE-2013-4203
79
+ * Added a check for CVE-2013-4413
80
+ * Added a check for CVE-2013-4489
81
+ * Added a check for CVE-2013-4593
82
+ * Added a check for CVE-2013-5671
83
+ * Added a check for CVE-2014-0080
84
+ * Added a check for CVE-2014-2525
85
+ * Added remaining compliance checks against Owasp Ruby on Rails cheatsheet.
86
+ Some other checks in the cheatsheet can't be turned into a Codesake::Dawn
87
+ test, so all the cheatsheet content is covered since now.
88
+ * Added a --ascii-tabular-report (-a) to produce a report formatted with ascii
89
+ tables. A bit of bin/dawn refactoring was necessary.
90
+ * Added a --json (-j) to produce JSON reports
91
+ * Added a --html (-h) to produce HTML reports
92
+ * Added a --file (-F) flag to save report to supplied filename
93
+ * Added Codesake::Dawn gem signature as described in
94
+ http://guides.rubygems.org/security/. README is modified accordingly with new
95
+ installation suggestions. Added also gem SHA512 checksum in repository.
96
+ * Added a not_affected attribute to dependency check to flag as not vulnerable
97
+ previous versions
98
+ * CVE-2013-2090: we were uncertain about previous cremefraiche version if they
99
+ were vulnerable or not. Gem author, yanked all previous version but the
100
+ latest released 29 January 2014. We removed the rspec check for version <
101
+ 0.6.x
102
+ * basic_check.rb: due to the great @rubysec guys work, the link to their site
103
+ is provided as well. True to be told, there are some CVE valid but not found
104
+ on NVID website, so having @rubysec link is even more accurate in those
105
+ situations.
106
+ * New Codesake::Dawn::Kb::VersionCheck class to provide version specific
107
+ checks, supporting beta version number, release candidate and pre. Fully
108
+ integrated with DepedencyCheck and RubyVersionCheck
109
+ * Issue #34. I added a deprecation check. However I haven't found an official
110
+ link saying which are MVC gem version to be considered officially deprecated
111
+ or just old. I enabled only check against ruby
112
+ * Added a --seach-knowledge-base removing the optional parameter to
113
+ --list-knowledge-base that is just for listing.
114
+ * Renamed '--list-knowledgebase' to '--list-knowledge-base' and '-k' short
115
+ option was removed
116
+ * Added a --list-known-families option printing out Codesake::Dawn supported
117
+ check family name
118
+ * Removed '-f' short option for list-known-framework
119
+ * Added family and severity to Owasp RoR Cheatsheet files
120
+ * Add a method to return severity level. If it's provided by check constructor
121
+ then that value is used, otherwise is calculated using CVSS. If no value and
122
+ no CVSS are available the return value is "unknown".
123
+ * Removed old ruby version check from BasicCheck. It's outdated and no longer
124
+ needed
125
+ * Added --disable-cve-bulletins flag to disable all CVE security checks
126
+ * Added --disable-code-quality flag to disable all code quality checks
127
+ * Added --disable-code-style flag to disable all code style checks
128
+ * Added --disable-owasp-ror-cheatsheet flag to disable all Owasp Ruby on Rails
129
+ cheatsheet checks
130
+ * Added --disable-owasp-top-10 flag to disable all Owasp Top 10 checks
131
+ * Revamped help output
132
+ * Added YAML Codesake::Dawn configuration support. Now you can specify your
133
+ preferences in a .codesake-dawn.yaml file in your home directory (or you can
134
+ use the --config-file option to specify the file you want to use). It returns
135
+ an embedded default configuration if the supplied filename doesn't exist.
136
+ * Nokogiri DoS security checks discovered in December 2013, now have their own
137
+ CVE: CVE-2013-6460 and CVE-2013-6461
138
+
139
+ ## Version 1.0.6 - codename: Lightning McQueen (2014-03-23)
140
+
141
+ * Added a check for CVE-2014-2538
142
+
143
+ ## Version 1.0.5 - codename: Lightning McQueen (2014-03-18)
144
+
145
+ * Added a check for CVE-2014-2322
146
+ * Added a check for CVE-2014-0036
147
+
148
+ ## Version 1.0.4 - codename: Lightning McQueen (2014-03-14)
149
+
150
+ * Backporting of some CVEs introduced in 2014 from the development branch.
151
+ Since it will take some time to improve dawn 1.1 and since I forgot to merge
152
+ some useful CVE released since January also in master, I do it know. Please
153
+ note that, due to a big change in DependencyCheck class the check against
154
+ CVE-2014-0080 will be only available with dawn 1.1.
155
+
156
+ Backported checks are:
157
+ + 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.
158
+ + 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.
159
+ + CVE-2014-0081: Multiple cross-site scripting (XSS) vulnerabilities in rails
160
+ + CVE-2014-0082: Denial of service in Rails before 3.2.17
161
+
162
+ New security checks are for Owasp ROR Cheatsheet:
163
+ + Check for safe redirect and forward
164
+ + Check for sensitive file
165
+
166
+ ## Version 1.0.3 - codename: Lightning McQueen (2014-02-13)
167
+
168
+ * Fixing issue #37. Now the rake task is successfully loaded when you require
169
+ the 'codesake/dawn/tasks' path. The task is dawn:run.
170
+
171
+ ## Version 1.0.2 - codename: Lightning McQueen (2014-01-27)
172
+
173
+ * Fixing issue #27. With rainbow gem version 2.0.0 there is an exception while
174
+ codesake-commons logging facilities tries to print something with the .color
175
+ method. Now Codesake::Dawn uses a new codesake-commons gem version that fixes
176
+ how rainbow gem deals with colorized output.
177
+
178
+ ## Version 1.0.1 - codename: Lightning McQueen (2014-01-25)
179
+
180
+ * Fixing issue #22. PatternMatchingCheck evaluates lines starting with the '#'
181
+ when applying regular expresion to get the job done. Of course this can be an
182
+ issue when it finds offending patterns inside comments (and this is why using
183
+ pattern matching in a security code review is EVIL!). Now there is an
184
+ attribute, avoid\_comments that tells the class to eventually strip leading
185
+ whitespaces from string and not to apply regex if the line is starting with
186
+ '#'.
187
+ Again, applying pattern matching approach to security leads to a lot of false
188
+ positives and should be avoided when possible, even with low severity checks
189
+ like this.
190
+ * Fixing issue #21. RoR cheatsheet security checks now have a detailed message
191
+ telling what's wen wrong with the code and why the check fired.
192
+
193
+ ## Version 1.0.0 - codename: Lightning McQueen (2014-01-21)
194
+
195
+ * Fixing issue #19 (https://github.com/codesake/codesake-dawn/issues/19). There
196
+ was a problem on ```is_a_vulnerable_version?``` routine that flags a security
197
+ check as vulnerable even if it wasn't. During the dependency check, if the
198
+ vulnerable gem and the dependency has both major and minor version equal and
199
+ the patch number tells if the gem is vulnerable or not, this check failed.
200
+ * ruby_version_check.rb: fixed an issue on is_vulnerable_patchlevel? that
201
+ caused a nil pointer exception when ruby interpreter patchlevel was evaluated
202
+ * ruby_version_check.rb: fixed an issue on is_vulnerable_patchlevel? that loads
203
+ the safe patchlevels comparing the wrong parameter.
204
+ * Added a rake task to better integrate codesake-dawn in a continous
205
+ development workflow. Now when you install codesake-dawn you have a 'rake
206
+ dawn' task executing the tool on the current directory.
207
+ * In BasicCheck::is_vulnerable_version? added support for the fourth version
208
+ number. We needed this to implement check for CVE-2013-7086
209
+ * Fixing issue #20. is_vulnerable_version? has a problem when the patchlevel is
210
+ the same but there are only three different version numbers (x.y.z format).
211
+ The last change introduces this vuln. Thank you Florin for opening the issue.
212
+ * Created a dedicated web site: [dawn.codesake.com](http://dawn.codesake.com)
213
+ * Fixing issue #8. The omniauth-oauth2 version 1.1.1 has a CSRF vulnerability
214
+ (CVE-2012-6134). The patch is already merged in the git repository but there
215
+ are no further gem releases. The suggested mitigation is to tell your Gemfile
216
+ to fetch the code directly from github rather then using rubygems.org
217
+ * Fixing issue #18. Owasp RoR Cheatsheet check was missing of message and
218
+ mitigation step.
219
+ * Fixing issue #17 with some more directories to be in whitelist in pattern
220
+ matching check. More exclusions will be added in further releases
221
+ * Added spec files for almost all security checks after 2008. Almost all kind
222
+ of checks (dependency, pattern matching, combo, ruby version) are covered by
223
+ a test.
224
+ * DependencyCheck assumes that if x.y.z version fixes an issue, every minor
225
+ version in the same major are affected as well. This assumption is risky, so
226
+ we introduced an attribute saying that the previous minor versions are
227
+ affected or not. This attribute is automagically set to true in dependencies
228
+ check when dealing with the rails gem. This assumption is not done for
229
+ previous major versions. Let's say a gem version 1.2.3 has a problem,
230
+ DependencyCheck doesn't say nothing about 0.9.3, but it thinks 1.1.9 is
231
+ vulnerable.
232
+ * Added a check for CVE-2004-0755
233
+ * Added a check for CVE-2004-0983
234
+ * Added a check for CVE-2005-1992
235
+ * Added a check for CVE-2005-2337
236
+ * Added a check for CVE-2006-1931
237
+ * Added a check for CVE-2006-2582
238
+ * Added a check for CVE-2006-3694
239
+ * Added a check for CVE-2006-4112
240
+ * Added a check for CVE-2006-5467
241
+ * Added a check for CVE-2006-6303
242
+ * Added a check for CVE-2006-6852
243
+ * Added a check for CVE-2006-6979
244
+ * Added a check for CVE-2007-0469
245
+ * Added a check for CVE-2007-5162
246
+ * Added a check for CVE-2007-5379
247
+ * Added a check for CVE-2007-5380
248
+ * Added a check for CVE-2007-5770
249
+ * Added a check for CVE-2007-6077
250
+ * Added a check for CVE-2007-6612
251
+ * Added a check for CVE-2008-1145
252
+ * Added a check for CVE-2008-1891
253
+ * Added a check for CVE-2008-2376
254
+ * Added a check for CVE-2008-2662
255
+ * Added a check for CVE-2008-2663
256
+ * Added a check for CVE-2008-2664
257
+ * Added a check for CVE-2008-2725
258
+ * Added a check for CVE-2008-3655
259
+ * Added a check for CVE-2008-3657
260
+ * Added a check for CVE-2008-3790
261
+ * Added a check for CVE-2008-3905
262
+ * Added a check for CVE-2008-4094
263
+ * Added a check for CVE-2008-4310
264
+ * Added a check for CVE-2008-5189
265
+ * Added a check for CVE-2008-7248
266
+ * Added a check for CVE-2009-4078
267
+ * Added a check for CVE-2009-4124
268
+ * Added a check for CVE-2009-4214
269
+ * Added a check for CVE-2010-2489
270
+ * Added a check for CVE-2010-3933
271
+ * Added a check for CVE-2011-0188
272
+ * Added a check for CVE-2011-0739
273
+ * Added a check for CVE-2011-1004
274
+ * Added a check for CVE-2011-1005
275
+ * Added a check for CVE-2011-2686
276
+ * Added a check for CVE-2011-2705
277
+ * Added a check for CVE-2011-2930
278
+ * Added a check for CVE-2011-3009
279
+ * Added a check for CVE-2011-3187
280
+ * Added a check for CVE-2011-4319
281
+ * Added a check for CVE-2012-1098
282
+ * Added a check for CVE-2012-2139
283
+ * Added a check for CVE-2012-2671
284
+ * Added a check for CVE-2013-0162
285
+ * Added a check for CVE-2013-0256
286
+ * Added a check for CVE-2013-0263
287
+ * Added a check for CVE-2013-1756
288
+ * Added a check for CVE-2013-2090
289
+ * Added a check for CVE-2013-2119
290
+ * Added a check for CVE-2013-5647
291
+ * Added a check for CVE-2013-6459
292
+ * Added a check for CVE-2013-7086
293
+
294
+
295
+ ## Version 0.85 - codename: elevator (2013-12-17)
296
+
297
+ * refactoring bin/dawn script: some stuff were moved into Codesake::Core class
298
+ * Added a check against Denial of Service vulnerability for Nokogiri 1.5.x
299
+ and 1.6.0 when used with JRuby.
300
+ * Added a check against Denial of Service vulnerability due to entity expansion
301
+ for Nokogiri 1.5.x and 1.6.0 when used with JRuby.
302
+ * Added a check for CVE-2013-4478 (sup remote code execution)
303
+ * Added a check for CVE-2013-4479 (sup remote code execution)
304
+ * Added a check for CVE-2013-1812 (ruby-openid denial of service)
305
+ * Added a check for CVE-2013-6421 (sprout remote code execution)
306
+
307
+
308
+ ## Version 0.80 - codename: elevator (2013-12-12)
309
+
310
+ * adding test for CVE-2013-4164
311
+ * adding test for CVE-2013-4457
312
+ * adding test for CVE-2013-4562
313
+ * added a '-z' flag to exit the process with the number of issues found as exit code
314
+ * added a Cross Site Scripting in Simple Form gem
315
+ * adding test for CVE-2013-4492
316
+ * adding test for CVE-2013-4491
317
+ * adding test for CVE-2013-6414
318
+ * adding test for CVE-2013-6415
319
+ * adding test for CVE-2013-6416
320
+ * adding test for CVE-2013-6417
321
+
322
+
323
+ ## Version 0.79.99 - codename:oddity (2013-11-14)
324
+
325
+ This is the first codesake-dawn version making codesake.com web application
326
+ able to scan something. It deserves a special release.
327
+
328
+ * adding test for CVE-2013-2065
329
+ * adding test for CVE-2013-4389
330
+ * adding test for CVE-2010-1330
331
+ * adding test for CVE-2011-0446
332
+ * adding test for CVE-2011-0995
333
+ * adding test for CVE-2011-2929
334
+ * adding test for CVE-2011-4815
335
+ * adding test for CVE-2012-3424
336
+ * adding test for CVE-2012-5380
337
+ * adding test for CVE-2012-4522
338
+ * adding test for RoRCheatSheet\_1
339
+ * adding test for RoRCheatSheet\_4
340
+ * adding test for RoRCheatSheet\_7
341
+ * adding test for RoRCheatSheet\_8
342
+ * Fix issue #1. You can read more about it in TODO.md
343
+ * Added API to scan a single Gemfile.lock using -G flag
344
+
345
+
346
+ ## Version 0.70 (2013-06-19)
347
+
348
+ * adding test for CVE-2011-0447
349
+ * adding test for CVE-2011-3186
350
+ * adding test for CVE-2012-1099
351
+ * adding test for CVE-2012-1241
352
+ * adding test for CVE-2012-2140
353
+ * adding test for CVE-2012-5370
354
+ * adding test for CVE-2012-5371
355
+ * adding test for CVE-2011-2197
356
+ * adding test for CVE-2011-2932
357
+ * adding test for CVE-2012-3463
358
+ * adding test for CVE-2012-3464
359
+ * adding test for CVE-2012-4464
360
+ * adding test for CVE-2012-4466
361
+ * adding test for CVE-2012-4481
362
+ * adding test for CVE-2012-6134
363
+ * Fix issue #4. PatternMatching complains when applied to binary files. We must
364
+ skip them
365
+ * add ruby\_parser dependency
366
+ * add haml dependency
367
+ * add target MVC autodetect
368
+ * write '--help'
369
+ * detect sinks for XSS in Sinatra applications
370
+ * detect reflected XSS in Sinatra applications
371
+
372
+
373
+ ## Version 0.60 (2013-05-28)
374
+
375
+ * adding cucumber dependency
376
+ * adding test for CVE-2013-1854
377
+ * adding test for CVE-2013-1856
378
+ * adding test for CVE-2013-0276
379
+ * adding test for CVE-2013-0277
380
+ * adding test for CVE-2013-0156
381
+ * adding test for CVE-2013-2615
382
+ * adding test for CVE-2013-1875
383
+ * adding test for CVE-2013-1655
384
+ * adding test for CVE-2013-1656
385
+ * adding test for CVE-2013-0175
386
+ * adding test for CVE-2013-0233
387
+ * adding test for CVE-2013-0284
388
+ * adding test for CVE-2013-0285
389
+ * adding test for CVE-2013-1801
390
+ * adding test for CVE-2013-1802
391
+ * adding test for CVE-2013-1821
392
+ * adding test for CVE-2013-1898
393
+ * adding test for CVE-2013-1911
394
+ * adding test for CVE-2013-1933
395
+ * adding test for CVE-2013-1947
396
+ * adding test for CVE-2013-1948
397
+ * adding test for CVE-2013-2616
398
+ * adding test for CVE-2013-2617
399
+ * adding test for CVE-2013-3221
400
+ * make output less verbose. Only vulnerabilities and severity will be shown
401
+ * adding a '--verbose' option to see also the whole knowledge base info about each findings
402
+ * adding a '--output' option
403
+ * adding a '--count-only' option
404
+ * support JSON output
405
+
406
+
407
+ ## Version 0.50 (2013-05-13) - First public release
408
+
409
+ * adding test for CVE\_2013\_0269
410
+ * adding test for CVE\_2013\_0155
411
+ * adding test for CVE\_2011\_2931
412
+ * adding test for CVE\_2012\_3465