dawnscanner 1.2.99

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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