CHANGES 60 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646
  1. 2022.82 - 1 April 2022
  2. Features and Changes:
  3. Note >> for compatibility/configuration changes
  4. - Implemented OpenSSH format private key handling for dropbearconvert.
  5. Keys can be read in OpenSSH format or the old PEM format.
  6. >> Keys are now written in OpenSSH format rather than PEM.
  7. ED25519 support is now correct. DSS keys are still PEM format.
  8. - Use SHA256 for key fingerprints
  9. - >> Reworked -v verbose printing, specifying multiple times will increase
  10. verbosity. -vvvv is equivalent to the old DEBUG_TRACE -v level, it
  11. can be configured at compile time in localoptions.h (see default_options.h)
  12. Lower -v options can be used to check connection progress or algorithm
  13. negotiation.
  14. Thanks to Hans Harder for the implementation
  15. localoptions.h DEBUG_TRACE should be set to 4 for the same result as the
  16. previous DEBUG_TRACE 1.
  17. - Added server support for U2F/FIDO keys (ecdsa-sk and ed25519-sk) in
  18. authorized_keys. no-touch-required option isn't allowed yet.
  19. Thanks to Egor Duda for the implementation
  20. - autoconf output (configure script etc) is now committed to version control.
  21. >> It isn't necessary to run "autoconf" any more on a checkout.
  22. - sha1 will be omitted from the build if KEX/signing/MAC algorithms don't
  23. require it. Instead sha256 is used for random number generation.
  24. See sysoptions.h to see which algorithms require which hashes.
  25. - Set SSH_PUBKEYINFO environment variable based on the authorized_keys
  26. entry used for auth. The first word of the comment after the key is used
  27. (must only have characters a-z A-Z 0-9 .,_-+@)
  28. Patch from Hans Harder, modified by Matt Johnston
  29. - Let dbclient multihop mode be used with '-J'.
  30. Patch from Hans Harder
  31. - Allow home-directory relative paths ~/path for various settings
  32. and command line options.
  33. *_PRIV_FILENAME DROPBEAR_PIDFILE SFTPSERVER_PATH MOTD_FILENAME
  34. Thanks to Begley Brothers Inc
  35. >> The default DROPBEAR_DEFAULT_CLI_AUTHKEY has now changed, it now needs
  36. a tilde prefix.
  37. - LANG environment variable is carried over from the Dropbear server process
  38. From Maxim Kochetkov
  39. - Add /usr/sbin and /sbin to $PATH when logging in as root.
  40. Patch from Raphaël Hertzog
  41. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=903403
  42. - Added client option "-o DisableTrivialAuth". This can be used to prevent
  43. the server immediately accepting successful authentication (before any auth
  44. request) which could cause UI confusion and security issues with agent
  45. forwarding - it isn't clear which host is prompting to use a key.
  46. Thanks to Manfred Kaiser from Austrian MilCERT
  47. - Add -q client option to hide remote banner, from Hans Harder
  48. - Add -e option to pass all server environment variables to child processes.
  49. This should be used with caution.
  50. Patch from Roland Vollgraf (github #118)
  51. - >> Use DSCP for QoS traffic classes. Priority (tty) traffic is now set to
  52. AF21 "interactive". Previously TOS classes were used, they are not used by
  53. modern traffic classifiers. Non-tty traffic is left at default priority.
  54. - >> Disable dh-group1 key exchange by default. It has been disabled server
  55. side by default since 2018.
  56. - >> Removed Twofish cipher
  57. Fixes:
  58. - Fix flushing channel data when pty was allocated (github #85)
  59. Data wasn't completely transmitted at channel close.
  60. Reported and initial patch thanks to Yousong Zhou
  61. - Dropbear now re-executes itself rather than just forking for each connection
  62. (only on Linux). This allows ASLR to randomise address space for each
  63. connection as a security mitigation. It should not have any visible impact
  64. - if there are any performance impacts in the wild please report it.
  65. - Check authorized_keys permissions as the user, fixes NFS squash root.
  66. Patch from Chris Dragan (github #107)
  67. - A missing home directory is now non-fatal, starting in / instead
  68. - Fixed IPv6 [address]:port parsing for dbclient -b
  69. Reported by Fabio Molinari
  70. - Improve error logging so that they are logged on the server rather than being
  71. sent to the client over the connection
  72. - Max window size is increased to 10MB, more graceful fallback if it's invalid.
  73. - Fix correctness of Dropbear's handling of global requests.
  74. Patch from Dirkjan Bussink
  75. - Fix some small bugs found by fuzzers, null pointer dereference crash and leaks
  76. (post authentication)
  77. - $HOME variable is used before /etc/passwd when expanding paths such as
  78. ~/.ssh/id_dropbear (for the client). Patch from Matt Robinson
  79. - C89 build fixes from Guillaume Picquet
  80. Infrastructure:
  81. - Improvements to fuzzers. Added post-auth fuzzer, and a mutator that can
  82. handle the structure of SSH packet streams. Added cifuzz to run on commits
  83. and pull requests.
  84. Thanks to OSS-Fuzz for the tools/clusters and reward funding.
  85. - Dropbear source tarballs generated by release.sh are now reproducible from a
  86. Git or Mercurial checkout, they will be identical on any system. Tested
  87. on ubuntu and macos.
  88. - Added some integration testing using pytest. Currently this has tests
  89. for various channel handling edge cases, ASLR fork randomisation,
  90. dropbearconvert, and SSH_PUBKEYINFO
  91. - Set up github actions. This runs the pytest suite and other checks.
  92. - build matrix includes c89, dropbearmulti, bundled libtom, macos, DEBUG_TRACE
  93. - test for configure script regeneration
  94. - build a tarball for external reproducibility
  95. 2020.81 - 29 October 2020
  96. - Fix regression in 2020.79 which prevented connecting with some SSH
  97. implementations. Increase MAX_PROPOSED_ALGO to 50, and print a log
  98. message if the limit is hit. This fixes interoperability with sshj
  99. library (used by PyCharm), and GoAnywhere.
  100. Reported by Pirmin Walthert and Piotr Jurkiewicz
  101. - Fix building with non-GCC compilers, reported by Kazuo Kuroi
  102. - Fix potential long delay in dbclient, found by OSS Fuzz
  103. - Fix null pointer dereference crash, found by OSS Fuzz
  104. - libtommath now uses the same random source as Dropbear (in 2020.79
  105. and 2020.80 used getrandom() separately)
  106. - Some fuzzing improvements, start of a dbclient fuzzer
  107. 2020.80 - 26 June 2020
  108. - Don't block authorized_keys logins with no-X11-forwarding or no-agent-forwarding
  109. restrictions when X11 or agent forwarding are disabled at compile time.
  110. This is more of a problem now X11 is disabled by default, reported by Guilhem Moulin
  111. - Reduce binary size by 4kB (x64) when using bundled libtommath
  112. - Define GNU_SOURCE for getrandom() on uclibc, reported by Laurent Bercot and
  113. Fabrice Fontaine
  114. - Improve checking libtomcrypt version compatibility
  115. - Add some style notes to DEVELOPING.md
  116. 2020.79 - 15 June 2020
  117. - Support ed25519 hostkeys and authorized_keys, many thanks to Vladislav Grishenko.
  118. This also replaces curve25519 with a TweetNaCl implementation that reduces code size.
  119. - Add chacha20-poly1305 authenticated cipher. This will perform faster than AES
  120. on many platforms. Thanks to Vladislav Grishenko
  121. - Support using rsa-sha2 signatures. No changes are needed to hostkeys/authorized_keys
  122. entries, existing RSA keys can be used with the new signature format (signatures
  123. are ephemeral within a session). Old ssh-rsa signatures will no longer
  124. be supported by OpenSSH in future so upgrading is recommended.
  125. - Use getrandom() call on Linux to ensure sufficient entropy has been gathered at startup.
  126. Dropbear now avoids reading from the random source at startup, instead waiting until
  127. the first connection. It is possible that some platforms were running without enough
  128. entropy previously, those could potentially block at first boot generating host keys.
  129. The dropbear "-R" option is one way to avoid that.
  130. - Upgrade libtomcrypt to 1.18.2 and libtommath to 1.2.0, many thanks to Steffen Jaeckel for
  131. updating Dropbear to use the current API. Dropbear's configure script will check
  132. for sufficient system library versions, otherwise using the bundled versions.
  133. - CBC ciphers, 3DES, hmac-sha1-96, and x11 forwarding are now disabled by default.
  134. They can be set in localoptions.h if required.
  135. Blowfish has been removed.
  136. - Support AES GCM, patch from Vladislav Grishenko. This is disabled by default,
  137. Dropbear doesn't currently use hardware accelerated AES.
  138. - Added an API for specifying user public keys as an authorized_keys replacement.
  139. See pubkeyapi.h for details, thanks to Fabrizio Bertocci
  140. - Fix idle detection clashing with keepalives, thanks to jcmathews
  141. - Include IP addresses in more early exit messages making it easier for fail2ban
  142. processing. Patch from Kevin Darbyshire-Bryant
  143. - scp fix for CVE-2018-20685 where a server could modify name of output files
  144. - SSH_ORIGINAL_COMMAND is set for "dropbear -c" forced command too
  145. - Fix writing key files on systems without hard links, from Matt Robinson
  146. - Compatibility fixes for IRIX from Kazuo Kuroi
  147. - Re-enable printing MOTD by default, was lost moving from options.h. Thanks to zciendor
  148. - Call fsync() is called on parent directory when writing key files to ensure they are flushed
  149. - Fix "make install" for manpages in out-of-tree builds, from Gabor Z. Papp
  150. - Some notes are added in DEVELOPING.md
  151. 2019.78 - 27 March 2019
  152. - Fix dbclient regression in 2019.77. After exiting the terminal would be left
  153. in a bad state. Reported by Ryan Woodsmall
  154. 2019.77 - 23 March 2019
  155. - Fix server -R option with ECDSA - only advertise one key size which will be accepted.
  156. Reported by Peter Krefting, 2018.76 regression.
  157. - Fix server regression in 2018.76 where multiple client -R forwards were all forwarded
  158. to the first destination. Reported by Iddo Samet.
  159. - Make failure delay more consistent to avoid revealing valid usernames, set server password
  160. limit of 100 characters. Problem reported by usd responsible disclosure team
  161. - Change handling of failed authentication to avoid disclosing valid usernames,
  162. CVE-2018-15599.
  163. - Fix dbclient to reliably return the exit code from the remote server.
  164. Reported by W. Mike Petullo
  165. - Fix export of 521-bit ECDSA keys, from Christian Hohnstädt
  166. - Add -o Port=xxx option to work with sshfs, from xcko
  167. - Merged fuzzing code, see FUZZER-NOTES.md
  168. - Add a DROPBEAR_SVR_MULTIUSER=0 compile option to run on
  169. single-user Linux kernels (CONFIG_MULTIUSER disabled). From Patrick Stewart
  170. - Increase allowed username to 100 characters, reported by W. Mike Petullo
  171. - Update config.sub and config.guess, should now work with RISC-V
  172. - Cygwin compile fix from karel-m
  173. - Don't require GNU sed (accidentally in 2018.76), reported by Samuel Hsu
  174. - Fix for IRIX and writev(), reported by Kazuo Kuroi
  175. - Other fixes and cleanups from François Perrad, Andre McCurdy, Konstantin Demin,
  176. Michael Jones, Pawel Rapkiewicz
  177. 2018.76 - 27 February 2018
  178. > > > Configuration/compatibility changes
  179. IMPORTANT
  180. Custom configuration is now specified in localoptions.h rather than options.h
  181. Available options and defaults can be seen in default_options.h
  182. To migrate your configuration, compare your customised options.h against the
  183. upstream options.h from your relevant version. Any customised options should
  184. be put in localoptions.h in the build directory.
  185. - "configure --enable-static" should now be used instead of "make STATIC=1"
  186. This will avoid 'hardened build' flags that conflict with static binaries
  187. - Set 'hardened build' flags by default if supported by the compiler.
  188. These can be disabled with configure --disable-harden if needed.
  189. -Wl,-pie
  190. -Wl,-z,now -Wl,-z,relro
  191. -fstack-protector-strong
  192. -D_FORTIFY_SOURCE=2
  193. # spectre v2 mitigation
  194. -mfunction-return=thunk
  195. -mindirect-branch=thunk
  196. Spectre patch from Loganaden Velvindron
  197. - "dropbear -r" option for hostkeys no longer attempts to load the default
  198. hostkey paths as well. If desired these can be specified manually.
  199. Patch from CamVan Nguyen
  200. - group1-sha1 key exchange is disabled in the server by default since
  201. the fixed 1024-bit group may be susceptible to attacks
  202. - twofish ciphers are now disabled in the default configuration
  203. - Default generated ECDSA key size is now 256 (rather than 521)
  204. for better interoperability
  205. - Minimum RSA key length has been increased to 1024 bits
  206. > > > Other features and fixes
  207. - Add runtime -T max_auth_tries option from Kevin Darbyshire-Bryant
  208. - Add 'dbclient -J &fd' to allow dbclient to connect over an existing socket.
  209. See dbclient manpage for a socat example. Patch from Harald Becker
  210. - Add "-c forced_command" option. Patch from Jeremy Kerr
  211. - Restricted group -G option added with patch from stellarpower
  212. - Support server-chosen TCP forwarding ports, patch from houseofkodai
  213. - Allow choosing outgoing address for dbclient with -b [bind_address][:bind_port]
  214. Patch from houseofkodai
  215. - Makefile will now rebuild object files when header files are modified
  216. - Add group14-256 and group16 key exchange options
  217. - curve25519-sha256 also supported without @libssh.org suffix
  218. - Update bundled libtomcrypt to 1.18.1, libtommath to 1.0.1
  219. This fixes building with some recent versions of clang
  220. - Set PAM_RHOST which is needed by modules such as pam_abl
  221. - Improvements to DSS and RSA public key validation, found by OSS-Fuzz.
  222. - Don't exit when an authorized_keys file has malformed entries. Found by OSS-Fuzz
  223. - Fix null-pointer crash with malformed ECDSA or DSS keys. Found by OSS-Fuzz
  224. - Numerous code cleanups and small issues fixed by Francois Perrad
  225. - Test for pkt_sched.h rather than SO_PRIORITY which was problematic with some musl
  226. platforms. Reported by Oliver Schneider and Andrew Bainbridge
  227. - Fix some platform portability problems, from Ben Gardner
  228. - Add EXEEXT filename suffix for building dropbearmulti, from William Foster
  229. - Support --enable-<option> properly for configure, from Stefan Hauser
  230. - configure have_openpty result can be cached, from Eric Bénard
  231. - handle platforms that return close() < -1 on failure, from Marco Wenzel
  232. - Build and configuration cleanups from Michael Witten
  233. - Fix libtomcrypt/libtommath linking order, from Andre McCurdy
  234. - Fix old Linux platforms that have SYS_clock_gettime but not CLOCK_MONOTONIC
  235. - Update curve25519-donna implementation to current version
  236. 2017.75 - 18 May 2017
  237. - Security: Fix double-free in server TCP listener cleanup
  238. A double-free in the server could be triggered by an authenticated user if
  239. dropbear is running with -a (Allow connections to forwarded ports from any host)
  240. This could potentially allow arbitrary code execution as root by an authenticated user.
  241. Affects versions 2013.56 to 2016.74. Thanks to Mark Shepard for reporting the crash.
  242. CVE-2017-9078 https://hg.ucc.asn.au/dropbear/rev/c8114a48837c
  243. - Security: Fix information disclosure with ~/.ssh/authorized_keys symlink.
  244. Dropbear parsed authorized_keys as root, even if it were a symlink. The fix
  245. is to switch to user permissions when opening authorized_keys
  246. A user could symlink their ~/.ssh/authorized_keys to a root-owned file they
  247. couldn't normally read. If they managed to get that file to contain valid
  248. authorized_keys with command= options it might be possible to read other
  249. contents of that file.
  250. This information disclosure is to an already authenticated user.
  251. Thanks to Jann Horn of Google Project Zero for reporting this.
  252. CVE-2017-9079 https://hg.ucc.asn.au/dropbear/rev/0d889b068123
  253. - Generate hostkeys with dropbearkey atomically and flush to disk with fsync
  254. Thanks to Andrei Gherzan for a patch
  255. - Fix out of tree builds with bundled libtom
  256. Thanks to Henrik Nordström and Peter Krefting for patches.
  257. 2016.74 - 21 July 2016
  258. - Security: Message printout was vulnerable to format string injection.
  259. If specific usernames including "%" symbols can be created on a system
  260. (validated by getpwnam()) then an attacker could run arbitrary code as root
  261. when connecting to Dropbear server.
  262. A dbclient user who can control username or host arguments could potentially
  263. run arbitrary code as the dbclient user. This could be a problem if scripts
  264. or webpages pass untrusted input to the dbclient program.
  265. CVE-2016-7406
  266. https://hg.ucc.asn.au/dropbear/rev/b66a483f3dcb
  267. - Security: dropbearconvert import of OpenSSH keys could run arbitrary code as
  268. the local dropbearconvert user when parsing malicious key files
  269. CVE-2016-7407
  270. https://hg.ucc.asn.au/dropbear/rev/34e6127ef02e
  271. - Security: dbclient could run arbitrary code as the local dbclient user if
  272. particular -m or -c arguments are provided. This could be an issue where
  273. dbclient is used in scripts.
  274. CVE-2016-7408
  275. https://hg.ucc.asn.au/dropbear/rev/eed9376a4ad6
  276. - Security: dbclient or dropbear server could expose process memory to the
  277. running user if compiled with DEBUG_TRACE and running with -v
  278. CVE-2016-7409
  279. https://hg.ucc.asn.au/dropbear/rev/6a14b1f6dc04
  280. The security issues were reported by an anonymous researcher working with
  281. Beyond Security's SecuriTeam Secure Disclosure www.beyondsecurity.com/ssd.html
  282. - Fix port forwarding failure when connecting to domains that have both
  283. IPv4 and IPv6 addresses. The bug was introduced in 2015.68
  284. - Fix 100% CPU use while waiting for rekey to complete. Thanks to Zhang Hui P
  285. for the patch
  286. 2016.73 - 18 March 2016
  287. - Support syslog in dbclient, option -o usesyslog=yes. Patch from Konstantin Tokarev
  288. - Kill a proxycommand when dbclient exits, patch from Konstantin Tokarev
  289. - Option to exit when a TCP forward fails, patch from Konstantin Tokarev
  290. - New "-o" option parsing from Konstantin Tokarev. This allows handling some extra options
  291. in the style of OpenSSH, though implementing all OpenSSH options is not planned.
  292. - Fix crash when fallback initshells() is used, reported by Michael Nowak and Mike Tzou
  293. - Allow specifying commands eg "dropbearmulti dbclient ..." instead of symlinks
  294. - Various cleanups for issues found by a lint tool, patch from Francois Perrad
  295. - Fix tab indent consistency, patch from Francois Perrad
  296. - Fix issues found by cppcheck, reported by Mike Tzou
  297. - Use system memset_s() or explicit_bzero() if available to clear memory. Also make
  298. libtomcrypt/libtommath routines use that (or Dropbear's own m_burn()).
  299. - Prevent scp failing when the local user doesn't exist. Based on patch from Michael Witten.
  300. - Improved Travis CI test running, thanks to Mike Tzou
  301. - Improve some code that was flagged by Coverity and Fortify Static Code Analyzer
  302. 2016.72 - 9 March 2016
  303. - Validate X11 forwarding input. Could allow bypass of authorized_keys command= restrictions,
  304. found by github.com/tintinweb. Thanks for Damien Miller for a patch. CVE-2016-3116
  305. https://hg.ucc.asn.au/dropbear/rev/a3e8389e01ff
  306. 2015.71 - 3 December 2015
  307. - Fix "bad buf_incrpos" when data is transferred, broke in 2015.69
  308. - Fix crash on exit when -p address:port is used, broke in 2015.68, thanks to
  309. Frank Stollenwerk for reporting and investigation
  310. - Fix building with only ENABLE_CLI_REMOTETCPFWD given, patch from Konstantin Tokarev
  311. - Fix bad configure script test which didn't work with dash shell, patch from Juergen Daubert,
  312. broke in 2015.70
  313. - Fix server race condition that could cause sessions to hang on exit,
  314. https://github.com/robotframework/SSHLibrary/issues/128
  315. 2015.70 - 26 November 2015
  316. - Fix server password authentication on Linux, broke in 2015.69
  317. 2015.69 - 25 November 2015
  318. - Fix crash when forwarded TCP connections fail to connect (bug introduced in 2015.68)
  319. - Avoid hang on session close when multiple sessions are started, affects Qt Creator
  320. Patch from Andrzej Szombierski
  321. - Reduce per-channel memory consumption in common case, increase default
  322. channel limit from 100 to 1000 which should improve SOCKS forwarding for modern
  323. webpages
  324. - Handle multiple command line arguments in a single flag, thanks to Guilhem Moulin
  325. - Manpage improvements from Guilhem Moulin
  326. - Build fixes for Android from Mike Frysinger
  327. - Don't display the MOTD when an explicit command is run from Guilhem Moulin
  328. - Check curve25519 shared secret isn't zero
  329. 2015.68 - Saturday 8 August 2015
  330. - Reduce local data copying for improved efficiency. Measured 30%
  331. increase in throughput for connections to localhost
  332. - Forwarded TCP ports connect asynchronously and try all available addresses
  333. (IPv4, IPv6, round robin DNS)
  334. - Fix all compile warnings, many patches from Gaël Portay
  335. Note that configure with -Werror may not be successful on some platforms (OS X)
  336. and some configuration options may still result in unused variable
  337. warnings.
  338. - Use TCP Fast Open on Linux if available. Saves a round trip at connection
  339. to hosts that have previously been connected.
  340. Needs a recent Linux kernel and possibly "sysctl -w net.ipv4.tcp_fastopen=3"
  341. Client side is disabled by default pending further compatibility testing
  342. with networks and systems.
  343. - Increase maximum command length to 9000 bytes
  344. - Free memory before exiting, patch from Thorsten Horstmann. Useful for
  345. Dropbear ports to embedded systems and for checking memory leaks
  346. with valgrind. Only partially implemented for dbclient.
  347. This is disabled by default, enable with DROPBEAR_CLEANUP in sysoptions.h
  348. - DROPBEAR_DEFAULT_CLI_AUTHKEY setting now always prepends home directory unless
  349. there is a leading slash (~ isn't treated specially)
  350. - Fix small ECC memory leaks
  351. - Tighten validation of Diffie-Hellman parameters, from Florent Daigniere of
  352. Matta Consulting. Odds of bad values are around 2**-512 -- improbable.
  353. - Twofish-ctr cipher is supported though disabled by default
  354. - Fix pre-authentication timeout when waiting for client SSH-2.0 banner, thanks
  355. to CL Ouyang
  356. - Fix null pointer crash with restrictions in authorized_keys without a command, patch from
  357. Guilhem Moulin
  358. - Ensure authentication timeout is handled while reading the initial banner,
  359. thanks to CL Ouyang for finding it.
  360. - Fix null pointer crash when handling bad ECC keys. Found by afl-fuzz
  361. 2015.67 - Wednesday 28 January 2015
  362. - Call fsync() after generating private keys to ensure they aren't lost if a
  363. reboot occurs. Thanks to Peter Korsgaard
  364. - Disable non-delayed zlib compression by default on the server. Can be
  365. enabled if required for old clients with DROPBEAR_SERVER_DELAY_ZLIB
  366. - Default client key path ~/.ssh/id_dropbear
  367. - Prefer stronger algorithms by default, from Fedor Brunner.
  368. AES256 over 3DES
  369. Diffie-hellman group14 over group1
  370. - Add option to disable CBC ciphers.
  371. - Disable twofish in default options.h
  372. - Enable sha2 HMAC algorithms by default, the code was already required
  373. for ECC key exchange. sha1 is the first preference still for performance.
  374. - Fix installing dropbear.8 in a separate build directory, from Like Ma
  375. - Allow configure to succeed if libtomcrypt/libtommath are missing, from Elan Ruusamäe
  376. - Don't crash if ssh-agent provides an unknown type of key. From Catalin Patulea
  377. - Minor bug fixes, a few issues found by Coverity scan
  378. 2014.66 - Thursday 23 October 2014
  379. - Use the same keepalive handling behaviour as OpenSSH. This will work better
  380. with some SSH implementations that have different behaviour with unknown
  381. message types.
  382. - Don't reply with SSH_MSG_UNIMPLEMENTED when we receive a reply to our own
  383. keepalive message
  384. - Set $SSH_CLIENT to keep bash happy, patch from Ryan Cleere
  385. - Fix wtmp which broke since 2013.62, patch from Whoopie
  386. 2014.65 - Friday 8 August 2014
  387. - Fix 2014.64 regression, server session hang on exit with scp (and probably
  388. others), thanks to NiLuJe for tracking it down
  389. - Fix 2014.64 regression, clock_gettime() error handling which broke on older
  390. Linux kernels, reported by NiLuJe
  391. - Fix 2014.64 regression, writev() could occassionally fail with EAGAIN which
  392. wasn't caught
  393. - Avoid error message when trying to set QoS on proxycommand or multihop pipes
  394. - Use /usr/bin/xauth, thanks to Mike Frysinger
  395. - Don't exit the client if the local user entry can't be found, thanks to iquaba
  396. 2014.64 - Sunday 27 July 2014
  397. - Fix compiling with ECDSA and DSS disabled
  398. - Don't exit abruptly if too many outgoing packets are queued for writev(). Patch
  399. thanks to Ronny Meeus
  400. - The -K keepalive option now behaves more like OpenSSH's "ServerAliveInterval".
  401. If no response is received after 3 keepalives then the session is terminated. This
  402. will close connections faster than waiting for a TCP timeout.
  403. - Rework TCP priority setting. New settings are
  404. if (connecting || ptys || x11) tos = LOWDELAY
  405. else if (tcp_forwards) tos = 0
  406. else tos = BULK
  407. Thanks to Catalin Patulea for the suggestion.
  408. - Improve handling of many concurrent new TCP forwarded connections, should now
  409. be able to handle as many as MAX_CHANNELS. Thanks to Eduardo Silva for reporting
  410. and investigating it.
  411. - Make sure that exit messages from the client are printed, regression in 2013.57
  412. - Use monotonic clock where available, timeouts won't be affected by system time
  413. changes
  414. - Add -V for version
  415. 2014.63 - Wednesday 19 February 2014
  416. - Fix ~. to terminate a client interactive session after waking a laptop
  417. from sleep.
  418. - Changed port separator syntax again, now using host^port. This is because
  419. IPv6 link-local addresses use %. Reported by Gui Iribarren
  420. - Avoid constantly relinking dropbearmulti target, fix "make install"
  421. for multi target, thanks to Mike Frysinger
  422. - Avoid getting stuck in a loop writing huge key files, reported by Bruno
  423. Thomsen
  424. - Don't link dropbearkey or dropbearconvert to libz or libutil,
  425. thanks to Nicolas Boos
  426. - Fix linking -lcrypt on systems without /usr/lib, thanks to Nicolas Boos
  427. - Avoid crash on exit due to cleaned up keys before last packets are sent,
  428. debugged by Ronald Wahl
  429. - Fix a race condition in rekeying where Dropbear would exit if it received a
  430. still-in-flight packet after initiating rekeying. Reported by Oliver Metz.
  431. This is a longstanding bug but is triggered more easily since 2013.57
  432. - Fix README for ecdsa keys, from Catalin Patulea
  433. - Ensure that generated RSA keys are always exactly the length
  434. requested. Previously Dropbear always generated N+16 or N+15 bit keys.
  435. Thanks to Unit 193
  436. - Fix DROPBEAR_CLI_IMMEDIATE_AUTH mode which saves a network round trip if the
  437. first public key succeeds. Still not enabled by default, needs more
  438. compatibility testing with other implementations.
  439. - Fix for port 0 forwarding in the client and port forwarding with Apache MINA SSHD. Thanks to
  440. - Fix for bad system linux/pkt-sched.h header file with older Linux
  441. kernels, from Steve Dover
  442. - Fix signal handlers so that errno is saved, thanks to Erik Ahlén for a patch
  443. and Mark Wickham for independently spotting the same problem.
  444. 2013.62 - Tuesday 3 December 2013
  445. - Disable "interactive" QoS connection options when a connection doesn't
  446. have a PTY (eg scp, rsync). Thanks to Catalin Patulea for the patch.
  447. - Log when a hostkey is generated with -R, fix some bugs in handling server
  448. hostkey commandline options
  449. - Fix crash in Dropbearconvert and 521 bit key, reported by NiLuJe
  450. - Update config.guess and config.sub again
  451. 2013.61test - Thursday 14 November 2013
  452. - Default generated RSA key size changed from 1024 to 2048 bits
  453. - ECC (elliptic curve) support. Supports ECDSA hostkeys (requires new keys to
  454. be generated) and ECDH for setting up encryption keys (no intervention
  455. required). This is significantly faster.
  456. - curve25519-sha256@libssh.org support for setting up encryption keys. This is
  457. another elliptic curve mode with less potential of NSA interference in
  458. algorithm parameters. curve25519-donna code thanks to Adam Langley
  459. - -R option to automatically generate hostkeys. This is recommended for
  460. embedded platforms since it allows the system random number device
  461. /dev/urandom a longer startup time to generate a secure seed before the
  462. hostkey is required.
  463. - Compile fixes for old vendor compilers like Tru64 from Daniel Richard G.
  464. - Make authorized_keys handling more robust, don't exit encountering
  465. malformed lines. Thanks to Lorin Hochstein and Mark Stillwell
  466. 2013.60 - Wednesday 16 October 2013
  467. - Fix "make install" so that it doesn't always install to /bin and /sbin
  468. - Fix "make install MULTI=1", installing manpages failed
  469. - Fix "make install" when scp is included since it has no manpage
  470. - Make --disable-bundled-libtom work
  471. 2013.59 - Friday 4 October 2013
  472. - Fix crash from -J command
  473. Thanks to Lluís Batlle i Rossell and Arnaud Mouiche for patches
  474. - Avoid reading too much from /proc/net/rt_cache since that causes
  475. system slowness.
  476. - Improve EOF handling for half-closed connections
  477. Thanks to Catalin Patulea
  478. - Send a banner message to report PAM error messages intended for the user
  479. Patch from Martin Donnelly
  480. - Limit the size of decompressed payloads, avoids memory exhaustion denial
  481. of service
  482. Thanks to Logan Lamb for reporting and investigating it. CVE-2013-4421
  483. https://hg.ucc.asn.au/dropbear/rev/0bf76f54de6f
  484. - Avoid disclosing existence of valid users through inconsistent delays
  485. Thanks to Logan Lamb for reporting. CVE-2013-4434
  486. https://hg.ucc.asn.au/dropbear/rev/d7784616409a
  487. - Update config.guess and config.sub for newer architectures
  488. - Avoid segfault in server for locked accounts
  489. - "make install" now installs manpages
  490. dropbearkey.8 has been renamed to dropbearkey.1
  491. manpage added for dropbearconvert
  492. - Get rid of one second delay when running non-interactive commands
  493. 2013.58 - Thursday 18 April 2013
  494. - Fix building with Zlib disabled, thanks to Hans Harder and cuma@freetz
  495. - Use % as a separator for ports, fixes scp in multihop mode, from Hans Harder
  496. - Reject logins for other users when running as non-root, from Hans Harder
  497. - Disable client immediate authentication request by default, it prevents
  498. passwordless logins from working
  499. 2013.57 - Monday 15 April 2013
  500. - Decreased connection setup time particularly with high latency connections,
  501. the number of round trips has been reduced for both client and server.
  502. CPU time hasn't been changed.
  503. - Client will send an initial key exchange guess to save a round trip.
  504. Dropbear implements an extension kexguess2@matt.ucc.asn.au to allow the first
  505. packet guess to succeed in wider circumstances than the standard behaviour.
  506. When communicating with other implementations the standard behaviour is used.
  507. - Client side: when public key or password authentication with
  508. $DROPBEAR_PASSWORD is used an initial authentication request will
  509. be sent immediately rather than querying the list of available methods.
  510. This behaviour is enabled by CLI_IMMEDIATE_AUTH option (on by default),
  511. please let the Dropbear author know if it causes any interoperability
  512. problems.
  513. - Implement client escape characters ~. (terminate session) and
  514. ~^Z (background session)
  515. - Server will more reliably clean up utmp when connection is closed, reported by
  516. Mattias Walström
  517. - Don't crash if /dev/urandom isn't writable (RHEL5), thanks to Scott Case
  518. - Add "-y -y" client option to skip host key checking, thanks to Hans Harder
  519. - scp didn't work properly on systems using vfork(), thanks to Frank Van Uffelen
  520. - Added IUTF8 terminal mode support (Linux and Mac OS). Not standardised yet
  521. though probably will be soon
  522. - Some verbose DROPBEAR_TRACE output is now hidden unless $DROPBEAR_TRACE2
  523. enviroment variable is set
  524. - Fix using asymmetric MAC algorithms (broke in )
  525. - Renamed configure.in to configure.ac to quieten autoconf, from Mike Frysinger
  526. 2013.56 - Thursday 21 March 2013
  527. - Allow specifying cipher (-c) and MAC (-m) lists for dbclient
  528. - Allow using 'none' cipher or MAC (off by default, use options.h). Encryption
  529. is used during authentication then disabled, similar to OpenSSH HPN mode
  530. - Allow a user in immediately if the account has a blank password and blank
  531. passwords are enabled
  532. - Include a few extra sources of entropy from /proc on Linux, hash private keys
  533. as well. Dropbear will also write gathered entropy back into /dev/urandom
  534. - Added hmac-sha2-256 and hmac-sha2-512 support (off by default, use options.h)
  535. - Don't sent bad address "localhost" for -R forward connections,
  536. reported by Denis Bider
  537. - Add "-B" runtime option to allow blank passwords
  538. - Allow using IPv6 bracket notation for addresses in server "-p" option, from Ben Jencks
  539. - A few improvements for Android from Reimar Döffinger
  540. - Fix memory leak for TCP forwarded connections to hosts that timed out,
  541. reported by Norbert Benczúr. Appears to be a very long-standing bug.
  542. - Fix "make clean" for out of tree builds
  543. - Fix compilation when ENABLE_{SVR,CLI}_AGENTFWD are unset
  544. 2012.55 - Wednesday 22 February 2012
  545. - Security: Fix use-after-free bug that could be triggered if command="..."
  546. authorized_keys restrictions are used. Could allow arbitrary code execution
  547. or bypass of the command="..." restriction to an authenticated user.
  548. This bug affects releases 0.52 onwards. Ref CVE-2012-0920.
  549. Thanks to Danny Fullerton of Mantor Organization for reporting
  550. the bug.
  551. https://hg.ucc.asn.au/dropbear/rev/818108bf7749
  552. - Compile fix, only apply IPV6 socket options if they are available in headers
  553. Thanks to Gustavo Zacarias for the patch
  554. - Overwrite session key memory on exit
  555. - Fix minor memory leak in unusual PAM authentication configurations.
  556. Thanks to Stathis Voukelatos
  557. - Other small code cleanups
  558. 2011.54 - Tuesday 8 November 2011
  559. - Building statically works again, broke in 0.53 and 0.53.1
  560. - Fix crash when forwarding with -R
  561. - Fixed various leaks found by Klocwork analysis software, thanks to them for
  562. running it
  563. - Set IPTOS_LOWDELAY for IPv6, thanks to Dave Taht
  564. - Bind to sockets with IPV6_V6ONLY so that it works properly on systems
  565. regardless of the system-wide setting
  566. - Added ALLOW_BLANK_PASSWORD option. Dropbear also now allows public key logins
  567. to accounts with a blank password. Thanks to Rob Landley
  568. - Fixed case where "-K 1" keepalive for dbclient would cause a SSH_MSG_IGNORE
  569. packet to be sent
  570. - Avoid some memory allocations in big number maths routines, improves
  571. performance slightly
  572. - Fix symlink target for installdropbearmulti with DESTDIR set, thanks to
  573. Scottie Shore
  574. - When requesting server allocated remote ports (-R 0:host:port) print a
  575. message informing what the port is, thanks to Ali Onur Uyar.
  576. - New version numbering scheme.
  577. Source repository has now migrated to Mercurial at
  578. https://hg.ucc.asn.au/dropbear/graph/default
  579. 0.53.1 - Wednesday 2 March 2011
  580. - -lcrypt needs to be before object files for static linking
  581. - Compile fix when both client and agent forwarding are disabled
  582. - Fix DROPBEAR_PRNGD_SOCKET mode
  583. - Don't allow setting zlib memLevel since it seems buggy
  584. 0.53 - Thurs 24 February 2011
  585. - Various performance/memory use improvements
  586. - Client agent forwarding now works, using OpenSSH's ssh-agent
  587. - Improve robustness of client multihop mode
  588. - Fix a prime generation bug in bundled libtommath. This is unlikely to have
  589. generated any bad keys in the wild.
  590. See
  591. https://bugzilla.redhat.com/show_bug.cgi?id=615088
  592. http://bugs.gentoo.org/show_bug.cgi?id=328383
  593. http://bugs.gentoo.org/show_bug.cgi?id=328409
  594. - Attempt to build against system libtomcrypt/libtommath if available. This
  595. can be disabled with ./configure --enable-bundled-libtom
  596. - Make -K (keepalive) and -I (idle timeout) work together sensibly in the client.
  597. The idle timeout is no longer reset by SSH_MSG_IGNORE packets.
  598. - Add diffie-hellman-group14-sha1 key exchange method
  599. - Compile fix if ENABLE_CLI_PROXYCMD is disabled
  600. - /usr/bin/X11/xauth is now the default path
  601. - Client remote forward (-L/-R) arguments now accept a listen address
  602. - In uClinux avoid trashing the parent process when a session exits
  603. - Blowfish is now disabled by default since it has large memory usage
  604. - Add option to change zlib windowbits/memlevel. Use less memory by default
  605. - DROPBEAR_SMALL_CODE is now disabled by default
  606. - SSH_ORIGINAL_COMMAND environment variable is set by the server when an
  607. authorized_keys command is specified.
  608. - Set SSH_TTY and SSH_CONNECTION environment variables in the server
  609. - Client banner is now printed to standard error rather than standard output
  610. - Capitalisation in many log messages has been made consistent. This may affect
  611. scripts that parse logfiles.
  612. 0.52 - Wed 12 November 2008
  613. - Add "netcat-alike" option (-B) to dbclient, allowing Dropbear to tunnel
  614. standard input/output to a TCP port-forwarded remote host.
  615. - Add "proxy command" support to dbclient, to allow using a spawned process for
  616. IO rather than a direct TCP connection. eg
  617. dbclient remotehost
  618. is equivalent to
  619. dbclient -J 'nc remotehost 22' remotehost
  620. (the hostname is still provided purely for looking up saved host keys)
  621. - Combine netcat-alike and proxy support to allow "multihop" connections, with
  622. comma-separated host syntax. Allows running
  623. dbclient user1@host1,user2@host2,user3@host3
  624. to end up at host3 via the other two, using SSH TCP forwarding. It's a bit
  625. like onion-routing. All connections are established from the local machine.
  626. The comma-separated syntax can also be used for scp/rsync, eg
  627. rsync -a -e dbclient m@gateway,m2@host,martello:/home/matt/ ~/backup/
  628. to bounce through a few hosts.
  629. - Add -I "idle timeout" option (contributed by Farrell Aultman)
  630. - Allow restrictions on authorized_keys logins such as restricting commands
  631. to be run etc. This is a subset of those allowed by OpenSSH, doesn't
  632. yet allow restricting source host.
  633. - Use vfork() for scp on uClinux
  634. - Default to PATH=/usr/bin:/bin for shells.
  635. - Report errors if -R forwarding fails
  636. - Add counter mode cipher support, which avoids some security problems with the
  637. standard CBC mode.
  638. - Support zlib@openssh.com delayed compression for client/server. It can be
  639. required for the Dropbear server with the '-Z' option. This is useful for
  640. security as it avoids exposing the server to attacks on zlib by
  641. unauthenticated remote users, though requires client side support.
  642. - options.h has been split into options.h (user-changable) and sysoptions.h
  643. (less commonly changed)
  644. - Support "dbclient -s sftp" to specify a subsystem
  645. - Fix a bug in replies to channel requests that could be triggered by recent
  646. versions of PuTTY
  647. 0.51 - Thu 27 March 2008
  648. - Make a copy of password fields rather erroneously relying on getwpnam()
  649. to be safe to call multiple times
  650. - If $SSH_ASKPASS_ALWAYS environment variable is set (and $SSH_ASKPASS is
  651. as well) always use that program, ignoring isatty() and $DISPLAY
  652. - Wait until a process exits before the server closes a connection, so
  653. that an exit code can be sent. This fixes problems with exit codes not
  654. being returned, which could cause scp to fail.
  655. 0.50 - Wed 8 August 2007
  656. - Add DROPBEAR_PASSWORD environment variable to specify a dbclient password
  657. - Use /dev/urandom by default, since that's what everyone does anyway
  658. - Correct vfork() use for uClinux in scp
  659. (thanks to Alex Landau)
  660. - Exit with an exit code of 1 if dropbear can't bind to any ports
  661. (thanks to Nicolai Ehemann)
  662. - Improve network performance and add a -W <receive_window> argument for
  663. adjusting the tradeoff between network performance and memory consumption.
  664. - Fix a problem where reply packets could be sent during key exchange,
  665. in violation of the SSH spec. This could manifest itself with connections
  666. being terminated after 8 hours with new TCP-forward connections being
  667. established.
  668. - Add -K <keepalive_time> argument, ensuring that data is transmitted
  669. over the connection at least every N seconds.
  670. - dropbearkey will no longer generate DSS keys of sizes other than 1024
  671. bits, as required by the DSS specification. (Other sizes are still
  672. accepted for use to provide backwards compatibility).
  673. 0.49 - Fri 23 February 2007
  674. - Security: dbclient previously would prompt to confirm a
  675. mismatching hostkey but wouldn't warn loudly. It will now
  676. exit upon a mismatch. CVE-2007-1099
  677. - Compile fixes, make sure that all variable definitions are at the start
  678. of a scope.
  679. - Added -P pidfile argument to the server (from Swen Schillig)
  680. - Add -N dbclient option for "no command"
  681. - Add -f dbclient option for "background after auth"
  682. - Add ability to limit binding to particular addresses, use
  683. -p [address:]port, patch from Max-Gerd Retzlaff.
  684. - Try to finally fix ss_family compilation problems (for old
  685. glibc systems)
  686. - Fix finding relative-path server hostkeys when running daemonized
  687. - Use $HOME in preference to that from /etc/passwd, so that
  688. dbclient can still work on broken systems.
  689. - Fix various issues found by Klocwork defect analysis, mostly memory leaks
  690. and error-handling. Thanks to Klocwork for their service.
  691. - Improve building in a separate directory
  692. - Add compile-time LOG_COMMANDS option to log user commands
  693. - Add '-y' flag to dbclient to unconditionally accept host keys,
  694. patch from Luciano Miguel Ferreira Rocha
  695. - Return immediately for "sleep 10 & echo foo", rather than waiting
  696. for the sleep to return (pointed out by Rob Landley).
  697. - Avoid hanging after exit in certain cases (such as scp)
  698. - Various minor fixes, in particular various leaks reported by
  699. Erik Hovland
  700. - Disable core dumps on startup
  701. - Don't erase over every single buffer, since it was a bottleneck.
  702. On systems where it really matters, encrypted swap should be utilised.
  703. - Read /dev/[u]random only once at startup to conserve kernel entropy
  704. - Upgrade to LibTomCrypt 1.16 and LibTomMath 0.40
  705. - Upgrade config.status and config.guess
  706. 0.48.1 - Sat 11 March 2006
  707. - Compile fix for scp
  708. 0.48 - Thurs 9 March 2006
  709. - Check that the circular buffer is properly empty before
  710. closing a channel, which could cause truncated transfers
  711. (thanks to Tomas Vanek for helping track it down)
  712. - Implement per-IP pre-authentication connection limits
  713. (after some poking from Pablo Fernandez) CVE-2006-1206
  714. - Exit gracefully if trying to connect to as SSH v1 server
  715. (reported by Rushi Lala)
  716. - Only read /dev/random once at startup when in non-inetd mode
  717. - Allow ctrl-c to close a dbclient password prompt (may
  718. still have to press enter on some platforms)
  719. - Merged in uClinux patch for inetd mode
  720. - Updated to scp from OpenSSH 4.3p2 - fixes a security issue
  721. where use of system() could cause users to execute arbitrary
  722. code through malformed filenames, ref CVE-2006-0225
  723. 0.47 - Thurs Dec 8 2005
  724. - SECURITY: fix for buffer allocation error in server code, could potentially
  725. allow authenticated users to gain elevated privileges. All multi-user systems
  726. running the server should upgrade (or apply the patch available on the
  727. Dropbear webpage). CVE-2005-4178
  728. - Fix channel handling code so that redirecting to /dev/null doesn't use
  729. 100% CPU.
  730. - Turn on zlib compression for dbclient.
  731. - Set "low delay" TOS bit, can significantly improve interactivity
  732. over some links.
  733. - Added client keyboard-interactive mode support, allows operation with
  734. newer OpenSSH servers in default config.
  735. - Log when pubkey auth fails because of bad ~/.ssh/authorized_keys permissions
  736. - Improve logging of assertions
  737. - Added aes-256 cipher and sha1-96 hmac.
  738. - Fix twofish so that it actually works.
  739. - Improve PAM prompt comparison.
  740. - Added -g (dbclient) and -a (dropbear server) options to allow
  741. connections to listening forwarded ports from remote machines.
  742. - Various other minor fixes
  743. - Compile fixes for glibc 2.1 (ss_family vs __ss_family) and NetBSD
  744. (netinet/in_systm.h needs to be included).
  745. 0.46 - Sat July 9 2005
  746. - Fix long-standing bug which caused connections to be closed if an ssh-agent
  747. socket was no longer available
  748. - Print a warning if we seem to be blocking on /dev/random
  749. (suggested by Paul Fox)
  750. - Fixed a memory leak in DSS code (thanks to Boris Berezovsky for the patch)
  751. - dbclient -L no longer segfaults, allocate correct buffer size (thanks
  752. to David Cook for reporting it, and Christopher Faylor for independently
  753. sending in a patch)
  754. - Added RSA blinding to signing code (suggested by Dan Kaminsky)
  755. - Rearranged bignum reading/random generation code
  756. - Reset the non-blocking status on stderr and stdout as well as stdin,
  757. fixes a problem where the shell running dbclient will exit (thanks to
  758. Brent Roman for reporting it)
  759. - Fix so that all file descriptors are closed so the child shell doesn't
  760. inherit descriptors (thanks to Linden May for the patch)
  761. - Change signkey.c to avoid gcc 4 generating incorrect code
  762. - After both sides of a file descriptor have been shutdown(), close()
  763. it to avoid leaking descriptors (thanks to Ari Hyttinen for a patch)
  764. - Update to LibTomCrypt 1.05 and LibTomMath 0.35
  765. 0.45 - Mon March 7 2005
  766. - Makefile no longer appends 'static' to statically linked binaries
  767. - Add optional SSH_ASKPASS support to the client
  768. - Respect HOST_LOOKUP option
  769. - Fix accidentally removed "return;" statement which was removed in 0.44
  770. (causing clients which sent an empty terminal-modes string to fail to
  771. connect - including pssh, ssh.com, danger hiptop). (patches
  772. independently from Paul Fox, David Horwitt and Sven-Ola Tuecke)
  773. - Read "y/n" response for fingerprints from /dev/tty directly so that dbclient
  774. will work with scp.
  775. 0.44 - Mon Jan 3 2005
  776. - SECURITY: Fix for PAM auth so that usernames are logged and conversation
  777. function responses are allocated correctly - all 0.44test4 users with PAM
  778. compiled in (not default) are advised to upgrade.
  779. - Fix calls to getnameinfo() for compatibility with Solaris
  780. - Pristine compilation works (run 'configure' from a fresh dir and make it
  781. there)
  782. - Fixes for compiling with most options disabled.
  783. - Upgraded to LibTomCrypt 0.99 and LibTomMath 0.32
  784. - Make sure that zeroing out of values in LTM and LTC won't get optimised away
  785. - Removed unused functions from loginrec.c
  786. - /dev/random is now the default entropy source rather than /dev/urandom
  787. - Logging of IPs in auth success/failure messages for improved greppability
  788. - Fix dbclient so that "scp -i keyfile" works. (It can handle "-ikeyfile
  789. properly)
  790. - Avoid a race in server shell-handling code which prevents the exit-code
  791. from being returned to the client in some circumstances.
  792. - Makefile modified so that install target works correctly (doesn't try
  793. to install "all" binary) - patch from Juergen Daubert
  794. - Various minor fixes and compile warnings.
  795. 0.44test4 - Tue Sept 14 2004 21:15:54 +0800
  796. - Fix inetd mode so it actually loads the hostkeys (oops)
  797. - Changed DROPBEAR_DEFPORT properly everywhere
  798. - Fix a small memory leak in the auth code
  799. - WCOREDUMP is only used on systems which support it (ie not cygwin or AIX)
  800. - Check (and fail for) cases when we can't negotiate algorithms with the
  801. remote side successfully (rather than bombing out ungracefully)
  802. - Handle authorized_keys files without a terminating newline
  803. - Fiddle the channel receive window size for possibly better performance
  804. - Added in the PAM authentication code (finally! thanks to Martin Carlsson)
  805. 0.44test3 - Fri Aug 27 22:20:54 +0800
  806. - Fixed a bunch of warnings.
  807. - scp works correctly when passed a username (fix for the dbclient program
  808. itself as well, "-lmatt" works as well as "-l matt").
  809. - Remove unrequired debian files
  810. - Exit with the remote process's return code for dbclient
  811. - Display stderr messages from the server in the client
  812. - Add circular buffering to the channel code. This should dramatically reduce
  813. the amount of backtraffic sent in response to traffic incoming to the
  814. Dropbear end - improves high-latency performance (ie dialup).
  815. - Various other related channel-handling fixups.
  816. - Allow leading lines in the banner when connecting to servers
  817. - Fixed printing out errors onto the network socket with stderr (for inetd
  818. mode when using xinetd)
  819. - Remove obselete documentation
  820. - Fix a null-pointer exception when trying to free non-existant listeners
  821. at cleanup.
  822. - DEBUG_TRACE now only works if you add "-v" to the program commandline
  823. - Don't leave stdin non-blocking on exit - this caused the parent shell
  824. of dbclient to close when dbclient exited, for some shells in BusyBox
  825. - Server connections no longer timeout after 5 minutes
  826. - Fixed stupid DSS hostkey typo (server couldn't load host keys)
  827. 0.44test2 - Tues Aug 17 2004 17:43:54 +0800
  828. - Fix up dropbearmulti targets in the Makefile - symlinks are now created
  829. - Compile fake-rfc2553 even with dropbearconvert/dropbearkey - this
  830. allows them to work on platforms without a native getaddrinfo()
  831. - Create ~/.ssh/known_hosts properly if it doesn't exist
  832. - Fix basename() function prototype
  833. - Backport some local changes (more #ifdefs for termcodes.c, a fix for missing
  834. defines on AIX).
  835. - Let dbclient be run as "ssh"
  836. - Initialise mp_ints by default
  837. 0.44test1 - Sun Aug 16 2005 17:43:54 +0800
  838. - TESTING RELEASE - this is the first public release of the client codebase,
  839. so there are sure to be bugs to be found. In addition, if you're just using
  840. the server portion, the final binary size probably will increase - I'll
  841. be trying to get it back down in future releases.
  842. - Dropbear client added - lots of changes to the server code as well to
  843. generalise things
  844. - IPv6 support added for client, server, and forwarding
  845. - New makefile with more generic support for multiple-program binaries
  846. 0.43 - Fri Jul 16 2004 17:44:54 +0800
  847. - SECURITY: Don't try to free() uninitialised variables in DSS verification
  848. code. Thanks to Arne Bernin for pointing out this bug. This is possibly
  849. exploitable, all users with DSS and pubkey-auth compiled in are advised to
  850. upgrade. CVE-2004-2486
  851. - Clean up agent forwarding socket files correctly, patch from Gerrit Pape.
  852. - Don't go into an infinite loop when portforwarding to servers which don't
  853. send any initial data/banner. Patch from Nikola Vladov
  854. - Fix for network vs. host byte order in logging remote TCP ports, also
  855. from Gerrit Pape.
  856. - Initialise many pointers to NULL, for general safety. Also checked cleanup
  857. code for mp_ints (related to security issues above).
  858. 0.42 - Wed Jun 16 2004 12:44:54 +0800
  859. - Updated to Gerrit Pape's official Debian subdirectory
  860. - Fixed bad check when opening /dev/urandom - thanks to Danny Sung.
  861. - Added -i inetd mode flag, and associated options in options.h . Dropbear
  862. can be compiled with either normal mode, inetd, or both modes. Thanks
  863. to Gerrit Pape for basic patch and motivation.
  864. - Use <dirent.h> rather than <sys/dir.h> for POSIX compliance. Thanks to Bill
  865. Sommerfield.
  866. - Fixed a TCP forwarding (client-local, -L style) bug which caused the whole
  867. session to close if the TCP connection failed. Thanks to Andrew Braund for
  868. reporting it and helping track it down.
  869. - Re-enable sigpipe for child processes. Thanks to Gerrit Pape for some
  870. suggestions, and BSD manpages for a clearer explanation of the behaviour.
  871. - Added manpages, thanks to Gerrit Pape.
  872. - Changed license text for LibTomCrypt and LibTomMath.
  873. - Added strip-static target
  874. - Fixed a bug in agent-forwarding cleanup handler - would segfault
  875. (dereferencing a null pointer) if agent forwarding had failed.
  876. - Fix behaviour of authorized_keys parsing, so larger (>1024 bit) DSA keys will
  877. work. Thanks to Dr. Markus Waldeck for the report.
  878. - Fixed local port forwarding code so that the "-j" option will make forwarding
  879. attempts fail more gracefully.
  880. - Allow repeated requests in a single session if previous ones fail - this fixes PuTTY and some other SCP clients, which try SFTP, then fall-back to SCP if it
  881. isn't available. Thanks to Stirling Westrup for the report.
  882. - Updated to LibTomCrypt 0.96 and LibTomMath 0.30. The AES code now uses
  883. smaller non-precomputed tables if DROPBEAR_SMALL_CODE is defined in
  884. options.h, leading to a significant reduction in the binary size.
  885. 0.41 - Mon Jan 19 2004 22:40:19 +0800
  886. - Fix in configure so that cross-compiling works, thanks to numerous people for
  887. reporting and testing
  888. - Terminal mode parsing now handles empty terminal mode strings (sent by
  889. Windows ssh.com clients), thanks to Ricardo Derbes for the report
  890. - Handling is improved for users with no shell specified in /etc/passwd,
  891. thanks again to Ricardo Derbes
  892. - Fix for compiling with --disable-syslog, thanks to gordonfh
  893. - Various minor fixes allow scp to work with irix, thanks to Paul Marinceu for
  894. fixing it up
  895. - Use <stropts.h> not <sys/stropts.h>, since the former seems more common
  896. 0.40 - Tue Jan 13 2004 21:05:19 +0800
  897. - Remote TCP forwarding (-R) style implemented
  898. - Local and remote TCP forwarding can each be disabled at runtime (-k and -j
  899. switches)
  900. - Fix for problems detecting openpty() with uClibc - many thanks to various
  901. people for reporting and testing fixes, including (in random order) Cristian
  902. Ionescu-Idbohrn, James Ewing, Steve Dover, Thomas Lundquist and Frederic
  903. Lavernhe
  904. - Improved portability for IRIX, thanks to Paul Marinceu
  905. - AIX and HPUX portability fixes, thanks to Darren Tucker for patches
  906. - prngd should now work correctly, thanks to Darren Tucker for the patch
  907. - scp compilation on systems without strlcpy() is fixed, thanks to Peter
  908. Jannesen and David Muse for reporting it (independently and simultaneously :)
  909. - Merged in new LibTomCrypt 0.92 and LibTomMath 0.28
  910. 0.39 - Tue Dec 16 2003 15:19:19 +0800
  911. - Better checking of key lengths and parameters for DSS and RSA auth
  912. - Print fingerprint of keys used for pubkey auth
  913. - More consistent logging of usernames and IPs
  914. - Added option to disable password auth (or just for root) at runtime
  915. - Avoid including bignum functions which don't give much speed benefit but
  916. take up binary size
  917. - Added a stripped down version of OpenSSH's scp binary
  918. - Added additional supporting functions for Irix, thanks to Paul Marinceu
  919. - Don't check for unused libraries in configure script
  920. - Removed trailing comma in algorithm lists (thanks to Mihnea Stoenescu)
  921. - Fixed up channel close handling, always send close packet in response
  922. (also thanks to Mihnea Stoenescu)
  923. - Various makefile improvements for cross-compiling, thanks to Friedrich
  924. Lobenstock and Mihnea Stoenescu
  925. - Use daemon() function if available (or our own copy) rather than separate
  926. code (thanks to Frédéric Lavernhe for the report and debugging, and Bernard
  927. Blackham for his suggestion on what to look at)
  928. - Fixed up support for first_kex_packet_follows, required to talk to ssh.com
  929. clients. Thanks to Marian Stagarescu for the bug report.
  930. - Avoid using MAXPATHLEN, pointer from Ian Morris
  931. - Improved input sanity checking
  932. 0.38 - Sat Oct 11 2003 16:28:13 +0800
  933. - Default hostkey path changed to /etc/dropbear/dropbear_{rsa,dss}_host_key
  934. rather than /etc/dropbear_{rsa,dss}_host_key
  935. - Added SMALL and MULTI text files which have info on compiling for multiple
  936. binaries or small binaries
  937. - Allow for commandline definition of some options.h settings
  938. (without warnings)
  939. - Be more careful handling EINTR
  940. - More fixes for channel closing
  941. - Added multi-binary support
  942. - Improved logging of IPs, now get logged in all cases
  943. - Don't chew cpu when waiting for version identification string, also
  944. make sure that we kick off people if they don't auth within 5 minutes.
  945. - Various small fixes, warnings etc
  946. - Display MOTD if requested - suggested by
  947. Trent Lloyd <lathiat at sixlabs.org> and
  948. Zach White <zwhite at darkstar.frop.org>
  949. - sftp support works (relies on OpenSSH sftp binary or similar)
  950. - Added --disable-shadow option (requested by the floppyfw guys)
  951. 0.37 - Wed Sept 24 2003 19:42:12 +0800
  952. - Various portability fixes, fixes for Solaris 9, Tru64 5.1, Mac OS X 10.2,
  953. AIX, BSDs
  954. - Updated LibTomMath to 0.27 and LibTomCrypt to 0.90
  955. - Renamed util.{c,h} to dbutil.{c,h} to avoid conflicts with system util.h
  956. - Added some small changes so it'll work with AIX (plus Linux Affinity).
  957. Thanks to Shig for them.
  958. - Improved the closing messages, so a clean exit is "Exited normally"
  959. - Added some more robust integer/size checking in buffer.c as a backstop for
  960. integer overflows
  961. - X11 forwarding fixed for OSX, path for xauth changed to /usr/X11R6/bin/xauth
  962. - Channel code handles closing more nicely, doesn't sit waiting for an extra
  963. keystroke on BSD/OSX platforms, and data is flushed fully before closing
  964. child processes (thanks to
  965. Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn at axis.com> for
  966. pointing that out).
  967. - Changed "DISABLE_TCPFWD" to "ENABLE_TCPFWD" (and for x11/auth) so
  968. "disable DISABLE_TCPWD" isn't so confusing.
  969. - Fix authorized_keys handling (don't crash on too-long keys, and
  970. use fgetc not getc to avoid strange macro-related issues), thanks to
  971. Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn at axis.com>
  972. and Steve Rodgers <hwstar at cox.net> for reporting and testing.
  973. - Fixes to the README with regard to uClibc systems, thanks to
  974. Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn at axis.com>,
  975. as well as general improvements to documentation (split README/INSTALL)
  976. - Fixed up some compilation problems with dropbearconvert/dropbearkey if
  977. DSS or RSA were disabled, reported by Patrik Karlsson <patrik at cqure.net>
  978. - Fix double-free bug for hostkeys, reported by
  979. Vincent Sanders <vince at kyllikki.org>
  980. - Fix up missing \ns from dropbearconvert help message,
  981. thanks to Mordy Ovits <movits at bloomberg.com> for the patch
  982. 0.36 - Tue August 19 2003 12:16:23 +0800
  983. - Fix uninitialised temporary variable in DSS signing code
  984. (thanks to Matthew Franz <mdfranz at io.com> for reporting, and the authors
  985. of Valgrind for making it easy to track down)
  986. - Fix remote version-string parsing error
  987. (thanks to Bernard Blackham <bernard at blackham.com.au> for noticing)
  988. - Improved host-algorithm-matching algorithm in algo.c
  989. - Decreased MAX_STRING_LEN to a more realistic value
  990. - Fix incorrect version (0.34) in this CHANGES file for the previous release.
  991. 0.35 - Sun August 17 2003 05:37:47 +0800
  992. - Fix for remotely exploitable format string buffer overflow.
  993. (thanks to Joel Eriksson <je at bitnux.com>)
  994. 0.34 - Fri August 15 2003 15:10:00 +0800
  995. - Made syslog optional, both at compile time and as a compile option
  996. (suggested by Laurent Bercot <ska at skarnet.org>)
  997. - Fixup for bad base64 parsing in authorized_keys
  998. (noticed by Davyd Madeley <davyd at zdlcomputing.com>)
  999. - Added initial tcp forwarding code, only -L (local) at this stage
  1000. - Improved "make install" with DESTDIR and changing ownership seperately,
  1001. don't check for setpgrp on Linux for crosscompiling.
  1002. (from Erik Andersen <andersen at codepoet.org>)
  1003. - More commenting, fix minor compile warnings, make return values more
  1004. consistent etc
  1005. - Various signedness fixes
  1006. - Can listen on multiple ports
  1007. - added option to disable openpty with configure script,
  1008. (from K.-P. Kirchdörfer <kapeka at epost.de>)
  1009. - Various cleanups to bignum code
  1010. (thanks to Tom St Denis <tomstdenis at iahu.ca>)
  1011. - Fix compile error when disabling RSA
  1012. (from Marc Kleine-Budde <kleine-budde at gmx.de>)
  1013. - Other cleanups, splitting large functions for packet and kex handling etc
  1014. 0.33 - Sun June 22 2003 22:24:12 +0800
  1015. - Fixed some invalid assertions in the channel code, fixing the server dying
  1016. when forwarding X11 connections.
  1017. - Add dropbearconvert to convert to/from OpenSSH host keys and Dropbear keys
  1018. - RSA keys now keep p and q parameters for compatibility -- old Dropbear keys
  1019. still work, but can't be converted to OpenSSH etc.
  1020. - Debian packaging directory added, thanks to
  1021. Grahame (grahame at angrygoats.net)
  1022. - 'install' target added to the makefile
  1023. - general tidying, improve consistency of functions etc
  1024. - If RSA or DSS hostkeys don't exist, that algorithm won't be used.
  1025. - Improved RSA and DSS key generation, more efficient and fixed some minor bugs
  1026. (thanks to Tom St Denis for the advice)
  1027. - Merged new versions of LibTomCrypt (0.86) and LibTomMath (0.21)
  1028. 0.32 - Sat May 24 2003 12:44:11 +0800
  1029. - Don't compile unused code from libtomcrypt (test vectors etc)
  1030. - Updated to libtommath 0.17 and libtomcrypt 0.83. New libtommath results
  1031. in smaller binary size, due to not linking unrequired code
  1032. - X11 forwarding added
  1033. - Agent forwarding added (for OpenSSH.com ssh client/agent)
  1034. - Fix incorrect buffer freeing when banners are used
  1035. - Hostname resolution works
  1036. - Various minor bugfixes/code size improvements etc
  1037. 0.31 - Fri May 9 2003 17:57:16 +0800
  1038. - Improved syslog messages - IP logging etc
  1039. - Strip control characters from log messages (specified username currently)
  1040. - Login recording (utmp/wtmp) support, so last/w/who work - taken from OpenSSH
  1041. - Shell is started as a proper login shell, so /etc/profile etc is sourced
  1042. - Ptys work on Solaris (2.8 x86 tested) now
  1043. - Fixed bug in specifying the rsa hostkey
  1044. - Fixed bug in compression code, could trigger if compression resulted in
  1045. larger output than input (uncommon but possible).
  1046. 0.30 - Thu Apr 17 2003 18:46:15 +0800
  1047. - SECURITY: buffer.c had bad checking for buffer increment length - fixed
  1048. - channel code now closes properly on EOF - scp processes don't hang around
  1049. - syslog support added - improved auth/login/failure messages
  1050. - general code tidying, made return codes more consistent
  1051. - Makefile fixed for dependencies and makes libtomcrypt as well
  1052. - Implemented sending SSH_MSG_UNIMPLEMENTED :)
  1053. 0.29 - Wed Apr 9 2003
  1054. - Fixed a stupid bug in 0.28 release, 'newstr = strdup(oldstr)',
  1055. not 'newstr=oldstr'
  1056. 0.28 - Sun Apr 6 2003
  1057. - Initial public release
  1058. Development was started in October 2002