Advertisement
drpanwe

Untitled

Aug 23rd, 2018
321
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.92 KB | None | 0 0
  1. ----------------------- testreport log -------------------------------
  2.  
  3. SUMMARY:FAILED
  4.  
  5. comment: Regression has been found, since the new option CipherSuite produces an error and prevents the establishment of TLS1 connection with the remote host using ftp protocol. The other two bug-reports were fixed in the previous version.
  6.  
  7. $Author: pgeorgiadis $
  8.  
  9. Products: SLE-DEBUGINFO 11-SP3 (i386, ia64, ppc64, s390x, x86_64), SLES4VMWARE 11-SP3 (i386, x86_64), SLE-SERVER 11-SP3 (i386, ia64, ppc64, s390x, x86_64), SLE-DESKTOP 11-SP3 (i386, x86_64)
  10. Category: security
  11. SAT Patch No: 9944
  12. MD5 sum: ac2aba5516857ac48ef10e9ae01e12a2
  13. SUBSWAMPID: 59609
  14. Bugs: 902229, 828469, 856424
  15. Repository: http://hilbert.nue.suse.com/abuildstat/patchinfo/ac2aba5516857ac48ef10e9ae01e12a2/
  16. Packages: pure-ftpd >= 1.0.22-3.23.1
  17. SRCRPMs: pure-ftpd
  18. Test Plan Reviewers: Johannes Segitz <[email protected]>
  19. Testplatform: base=sles(major=11,minor=sp3);arch=[i386,s390x,x86_64]
  20. Testplatform: base=sled(major=11,minor=sp3);arch=[i386,x86_64]
  21.  
  22. #############################
  23. Test results by product-arch:
  24. #############################
  25.  
  26. sled11sp3-i386 (reference host: bashir.qam.suse.de)
  27. --------------
  28. before:
  29. pure-ftpd-1.0.22-3.21.1
  30. after:
  31. pure-ftpd-1.0.22-3.23.1
  32. scripts:
  33. all_updated : SUCCEEDED
  34. dependencies : SUCCEEDED
  35. from_same_srcrpm : SUCCEEDED
  36. initrd_state : SUCCEEDED
  37. multiple-owners : SUCCEEDED
  38. new_dependencies : SUCCEEDED
  39. new_licenses : SUCCEEDED
  40. vendor_and_disturl : SUCCEEDED
  41.  
  42. => PASSED
  43.  
  44. comment: (none)
  45.  
  46. sled11sp3-x86_64 (reference host: jadzia.qam.suse.de)
  47. ----------------
  48. before:
  49. pure-ftpd-1.0.22-3.21.1
  50. after:
  51. pure-ftpd-1.0.22-3.23.1
  52. scripts:
  53. all_updated : SUCCEEDED
  54. dependencies : SUCCEEDED
  55. from_same_srcrpm : SUCCEEDED
  56. initrd_state : SUCCEEDED
  57. multiple-owners : SUCCEEDED
  58. new_dependencies : SUCCEEDED
  59. new_licenses : SUCCEEDED
  60. vendor_and_disturl : SUCCEEDED
  61.  
  62. => PASSED
  63.  
  64. comment: (none)
  65.  
  66. sles11sp3-i386 (reference host: dukat.qam.suse.de)
  67. --------------
  68. before:
  69. pure-ftpd-1.0.22-3.21.1
  70. after:
  71. pure-ftpd-1.0.22-3.23.1
  72. scripts:
  73. all_updated : SUCCEEDED
  74. dependencies : SUCCEEDED
  75. from_same_srcrpm : SUCCEEDED
  76. initrd_state : SUCCEEDED
  77. multiple-owners : SUCCEEDED
  78. new_dependencies : SUCCEEDED
  79. new_licenses : SUCCEEDED
  80. vendor_and_disturl : SUCCEEDED
  81.  
  82. => PASSED
  83.  
  84. comment: (none)
  85.  
  86. sles11sp3-s390x (reference host: s390vsw068.suse.de)
  87. ---------------
  88. before:
  89. pure-ftpd-1.0.22-3.21.1
  90. after:
  91. pure-ftpd-1.0.22-3.23.1
  92. scripts:
  93. all_updated : SUCCEEDED
  94. dependencies : SUCCEEDED
  95. from_same_srcrpm : SUCCEEDED
  96. initrd_state : SUCCEEDED
  97. multiple-owners : SUCCEEDED
  98. new_dependencies : SUCCEEDED
  99. new_licenses : SUCCEEDED
  100. vendor_and_disturl : SUCCEEDED
  101.  
  102. => PASSED
  103.  
  104. comment: (none)
  105.  
  106. sles11sp3-x86_64 (reference host: sisko.qam.suse.de)
  107. ----------------
  108. before:
  109. pure-ftpd-1.0.22-3.21.1
  110. after:
  111. pure-ftpd-1.0.22-3.23.1
  112. scripts:
  113. all_updated : SUCCEEDED
  114. dependencies : SUCCEEDED
  115. from_same_srcrpm : SUCCEEDED
  116. initrd_state : SUCCEEDED
  117. multiple-owners : SUCCEEDED
  118. new_dependencies : SUCCEEDED
  119. new_licenses : SUCCEEDED
  120. vendor_and_disturl : SUCCEEDED
  121.  
  122. => PASSED
  123.  
  124. comment: (none)
  125.  
  126.  
  127. ########################
  128. notes for/by the tester:
  129. ########################
  130.  
  131. Bug #902229 ("VUL-0: CVE-2014-3566: pure-ftpd: FTP sus..."):
  132. ------------------------------------------------------------
  133.  
  134. https://bugzilla.suse.com/show_bug.cgi?id=902229
  135.  
  136. REPRODUCER_PRESENT: YES
  137. REPRODUCER_COVERAGE: YES
  138. REPRODUCER_APPLICABLE: YES
  139. REPRODUCER_WORKING: YES
  140. REPRODUCER_AUTOMATABLE: YES
  141.  
  142. ...
  143.  
  144. setup - configuration you need:
  145.  
  146. # Make sure you are using the vulnerable version of pure-ftpd (pure-ftp : 1.0.22-3.21.1)
  147. zypper se -s pure-ftpd
  148.  
  149. S | Name | Type | Version | Arch | Repository
  150. --+-------------------+------------+---------------+--------+-----------------------
  151. i | pure-ftpd | package | 1.0.22-3.21.1 | x86_64 | SLE11SP3-SERVER-UPDATE <-- version check confirmed
  152. v | pure-ftpd | package | 1.0.22-3.19.1 | x86_64 | SLE11SP3-SERVER
  153. | pure-ftpd | srcpackage | 1.0.22-3.21.1 | noarch | SLE11SP3-SERVER-UPDATE
  154. | slessp3-pure-ftpd | patch | 9849 | noarch | SLE11SP3-SERVER-UPDATE
  155.  
  156. # Create the OpenSSL cert
  157. mkdir -p /etc/ssl/private/
  158. openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
  159. chmod 600 /etc/ssl/private/pure-ftpd.pem
  160.  
  161. # Stop and restart (loading the configuration) the pure-ftpd daemon
  162. service pure-ftpd stop
  163. /usr/sbin/pure-config.pl /etc/pure-ftpd/pure-ftpd.conf # starts the service using the configuration from the /etc/pure-ftpd/pure-ftpd.conf
  164.  
  165. # Configure syslog-ng to exlude FTP logs into a separate file
  166. vim /etc/syslog-ng/syslog-ng.conf
  167.  
  168. # and add
  169. destination d_ftp { file("/var/log/pure-ftpd.log"); };
  170. filter f_ftp {
  171. facility(ftp);
  172. };
  173. log { source(src); filter(f_ftp); destination(d_ftp); };
  174.  
  175. # restart the syslog-ng
  176. killall -HUP syslogd
  177.  
  178. # Monitor the /var/log/pure-ftpd.log
  179. tail -f /var/log/pure-ftpd.log
  180.  
  181. # Test commands
  182. for SSL3:openssl s_client -starttls ftp -ssl3 -connect sisko.qam.suse.de:21
  183. for SSL2:openssl s_client -starttls ftp -ssl2 -connect sisko.qam.suse.de:21
  184. for TLS1:openssl s_client -starttls ftp -tls1 -connect sisko.qam.suse.de:21
  185.  
  186. # Start testing
  187. -> Please check the following table (overview)
  188.  
  189. State Config | SSL3 | SSL2 | TLS1 || Command-Line
  190. ==========================================================================================================================================================================================
  191. before Default | -- | - | -- ||/usr/sbin/pure-ftpd -A -c10 -B -C3 -d -z -D -e -fftp -H -I15 -lpam -L2000:8 -m4 -p30000:30100 -s -u40 -x -r -i -k99 -G -Z
  192. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  193. before TLS 1 Verbose | works | works | works ||/usr/sbin/pure-ftpd -A -c10 -B -C3 -d -z -D -e -fftp -H -I15 -lpam -L2000:8 -m4 -p30000:30100 -s -u40 -x -r -i -k99 -G -Z -Y1
  194. ==========================================================================================================================================================================================
  195. after Default | -- | - | -- ||/usr/sbin/pure-ftpd -A -c10 -B -C3 -d -z -D -e -fftp -H -I15 -lpam -L2000:8 -m4 -p30000:30100 -s -u40 -x -r -i -k99 -G -Z
  196. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  197. after TLS 1 Verbose | works | works | works ||/usr/sbin/pure-ftpd -A -c10 -B -C3 -d -z -D -e -fftp -H -I15 -lpam -L2000:8 -m4 -p30000:30100 -s -u40 -x -r -i -k99 -G -Z -Y1 ||
  198. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  199. after TLS 1 Verbose | --- | --- | --- ||/usr/sbin/pure-ftpd -A -c10 -B -C3 -d -z -D -e -fftp -H -I15 -lpam -L2000:8 -m4 -p30000:30100 -s -u40 -x -r -i -k99 -G -Z -Y1 -JHIGH:MEDIUM:+TLSv1:!SSLv2:+!SSLv3
  200. CipherSuite [*] | | | ||
  201. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  202. ^
  203. |
  204. |
  205. / \
  206. Regression found (last line saying: after, TLS1, Verbose CipherSuite)
  207. Explanation:
  208.  
  209. 'before' means:
  210. The vulnerable version pure-ftpd-1.0.22-3.21.1
  211.  
  212. 'after' means:
  213. The new patched version pure-ftpd-1.0.22-3.23.1
  214.  
  215. 'default' means:
  216. No changes in the /etc/pure-ftpd/pure-ftpd.conf
  217.  
  218. 'TLS 1 Verbose' means:
  219. # configure pure-ftpd to accept TLS Authetication.
  220. --> Edit the configuration file /etc/pure-ftpd/pure-ftpd.conf, uncomment and change: '# TLS 1' ==> 'TLS 1'
  221.  
  222. # configure pure-ftpd to log itself as ftp in syslog-ng
  223. --> Edit the configuration file /etc/pure-ftpd/pure-ftpd.conf, uncomment and change: 'VerboseLog no' ==> 'VerboseLog yes'
  224.  
  225. 'CipherSuite' means:
  226. # configure pure-ftpd to use the new CipherSuite option that fixes the problem
  227. --> Edit the configuration file /etc/pure-ftpd/pure-ftpd.conf, uncomment and change: '#TLSCipherSuite HIGH:MEDIUM:+TLSv1:!SSLv2:+!SSLv3' ==> 'TLSCipherSuite HIGH:MEDIUM:+TLSv1:!SSLv2:+!SSLv3'
  228.  
  229. '-' means:
  230. CONNECTED(00000003)
  231. (I have to press CTRL+C - (it hangs there))
  232.  
  233. '--' means:
  234. CONNECTED(00000003)
  235. 56309:error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number:s3_pkt.c:281:
  236.  
  237. '---' means:
  238. socket: Connection refused
  239. connect:errno=111
  240.  
  241. '[*]' means:
  242. Nov 18 14:57:29 s390vsw068 pure-ftpd: (?@?) [ERROR] SSL/TLS: Invalid TLSCipherSuite specified 'HIGH:MEDIUM:+TLSv1:!SSLv2:+!SSLv3'
  243. -> it seems that this new option is not valid
  244.  
  245. 'works' means:
  246. Nov 18 14:55:45 s390vsw068 pure-ftpd: ([email protected]) [DEBUG] Command [auth] [TLS]
  247. Nov 18 14:55:45 s390vsw068 pure-ftpd: ([email protected]) [INFO] SSL/TLS: Enabled TLSv1/SSLv3 with AES256-SHA, 256 secret bits cipher
  248. (I am pressing CTRL+C)
  249. Nov 18 14:55:47 s390vsw068 pure-ftpd: ([email protected]) [INFO] Logout.
  250.  
  251. Comments:
  252. [1] after applying the update the new options 'TLSCipherSuite HIGH:MEDIUM:+TLSv1:!SSLv2:+!SSLv3' is not used by default. It's commented
  253. [2] if enabled, then TLS1 fails (which is not the case) along with SSL3 and SSL2
  254. [3] if enabled, and if you monitor the syslog-ng, you will catch an error: pure-ftpd: (?@?) [ERROR] SSL/TLS: Invalid TLSCipherSuite specified 'HIGH:MEDIUM:+TLSv1:!SSLv2:+!SSLv3'
  255.  
  256. According to the bug-report, it should be:
  257.  
  258. BEFORE | AFTER
  259. -------------------------
  260. SSL3: YES | NO
  261. SSL2: YES | NO
  262. TLS1: YES | YES
  263.  
  264. but, what I've get is:
  265.  
  266. BEFORE | AFTER
  267. -------------------------
  268. SSL3: YES | NO
  269. SSL2: YES | NO
  270. TLS1: YES | NO <- TLS1 is no working but it was supposed to
  271.  
  272. After some searching I found out that in the online documentation that is on github they have added a new README (https://github.com/jedisct1/pure-ftpd/blob/master/README) with
  273. the description "Disabling SSLv3 was already supported" and they say that:
  274.  
  275. - '-J <ciphers>': Sets the list of ciphers that will be accepted for
  276. SSL/TLS connections.
  277. For example: -J -S:HIGH:MEDIUM
  278. Prefixing the list with -S: totally disables SSLv3, which is highly
  279. recommended if you don't have to support old clients.
  280. SSLv2 is always disabled.
  281.  
  282. The part of using '-S' flag is missing from our documentation (manpage). Also, the code for this command doesn't seem to be backported.
  283. I did a diff between the github's ftpd.c and our package ftpd.c and searched for the "case 'J'" which is used for the CipherSuite
  284.  
  285. wget http://qam.suse.de/testreports/ac2aba5516857ac48ef10e9ae01e12a2/diff
  286. panos@g82:~> cat diff | grep -A 10 -- "case 'J'"
  287. +case 'J': {
  288. +if (strncmp(optarg, "-S:", sizeof "-S:" - (size_t) 1U) == 0) {
  289. +optarg += sizeof "-S:" - (size_t) 1U;
  290. +ssl_disabled = 1;
  291. +}
  292. +if ((tlsciphersuite = strdup(optarg)) == NULL) {
  293. +die_mem();
  294. +}
  295. +break;
  296. +}
  297. +#endif
  298.  
  299. as you can see the implementation of '-S' that prevents SSLv3 is missing from our source code.
  300.  
  301. In addition, the only option that doesn't produce an error in the configuration file is
  302. --> TLSCipherSuite HIGH:MEDIUM:+TLSv1:!SSLv2:+SSLv3
  303.  
  304. Testing this one, SSLv2 is blocked while SSLv3 and TLS1 are allowed.
  305. Mind also that TLSv1 ciphers are flagged as SLLv3 (I don't know if this is relevant)
  306.  
  307. openssl ciphers -v 'TLSv1' | sort
  308.  
  309. ADH-AES128-SHA SSLv3 Kx=DH Au=None Enc=AES(128) Mac=SHA1
  310. ADH-AES256-SHA SSLv3 Kx=DH Au=None Enc=AES(256) Mac=SHA1
  311. ADH-CAMELLIA128-SHA SSLv3 Kx=DH Au=None Enc=Camellia(128) Mac=SHA1
  312. ADH-CAMELLIA256-SHA SSLv3 Kx=DH Au=None Enc=Camellia(256) Mac=SHA1
  313. ADH-DES-CBC3-SHA SSLv3 Kx=DH Au=None Enc=3DES(168) Mac=SHA1
  314. ADH-DES-CBC-SHA SSLv3 Kx=DH Au=None Enc=DES(56) Mac=SHA1
  315. ADH-RC4-MD5 SSLv3 Kx=DH Au=None Enc=RC4(128) Mac=MD5
  316. AES128-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA1
  317. AES256-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA1
  318. CAMELLIA128-SHA SSLv3 Kx=RSA Au=RSA Enc=Camellia(128) Mac=SHA1
  319. CAMELLIA256-SHA SSLv3 Kx=RSA Au=RSA Enc=Camellia(256) Mac=SHA1
  320. DES-CBC3-SHA SSLv3 Kx=RSA Au=RSA Enc=3DES(168) Mac=SHA1
  321. DES-CBC-SHA SSLv3 Kx=RSA Au=RSA Enc=DES(56) Mac=SHA1
  322. DHE-DSS-AES128-SHA SSLv3 Kx=DH Au=DSS Enc=AES(128) Mac=SHA1
  323. DHE-DSS-AES256-SHA SSLv3 Kx=DH Au=DSS Enc=AES(256) Mac=SHA1
  324. DHE-DSS-CAMELLIA128-SHA SSLv3 Kx=DH Au=DSS Enc=Camellia(128) Mac=SHA1
  325. DHE-DSS-CAMELLIA256-SHA SSLv3 Kx=DH Au=DSS Enc=Camellia(256) Mac=SHA1
  326. DHE-RSA-AES128-SHA SSLv3 Kx=DH Au=RSA Enc=AES(128) Mac=SHA1
  327. DHE-RSA-AES256-SHA SSLv3 Kx=DH Au=RSA Enc=AES(256) Mac=SHA1
  328. DHE-RSA-CAMELLIA128-SHA SSLv3 Kx=DH Au=RSA Enc=Camellia(128) Mac=SHA1
  329. DHE-RSA-CAMELLIA256-SHA SSLv3 Kx=DH Au=RSA Enc=Camellia(256) Mac=SHA1
  330. EDH-DSS-DES-CBC3-SHA SSLv3 Kx=DH Au=DSS Enc=3DES(168) Mac=SHA1
  331. EDH-DSS-DES-CBC-SHA SSLv3 Kx=DH Au=DSS Enc=DES(56) Mac=SHA1
  332. EDH-RSA-DES-CBC3-SHA SSLv3 Kx=DH Au=RSA Enc=3DES(168) Mac=SHA1
  333. <span style="color:rgb(0,0,0);font-family:'Lucida Console',Courier,'Courier New';font-size:12px;background-color:r
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement