An outdated version of bash was detected on your system! when updating sdkman

sdman is looking at /bin/bash which is version 3.2.57 because macos cannot ship with anything newer than it.

The reason that Apple includes such an old version of Bash in its operating system has to do with licensing. Since version 4.0 (successor of 3.2), Bash uses the GNU General Public License v3 (GPLv3), which Apple does not (want to) support. You can find some discussions about this here and here. Version 3.2 of GNU Bash is the last version with GPLv2, which Apple accepts, and so it sticks with it.

source

You have installed a modern version of bash but you haven't replaced /bin/bash with it. I don't really recommend doing that as it could potentially break some legacy scripts/programs (unlikely but possible).

My recommendation is to ignore that warning. It's warning you because bash v3.2 normally would suffer from the shellshock vulnerability, however Apple has patched this in their version of Bash v3.2.

If you are unable to ignore that warning and really want to risk updating your /bin/bash I would move it to a backup location and symlink your new bash to it.

sudo mv /bin/bash /bin/bash.bak
sudo ln -s /usr/local/bin/bash /bin/bash

But in order to do this you will need to bypass SIP

To enable or disable System Integrity Protection, you must boot to Recovery OS and run the csrutil(1) command from the Terminal.

  • Boot to Recovery OS by restarting your machine and holding down the Command and R keys at startup.
  • Launch Terminal from the Utilities menu.
  • Enter the following command:
    $ csrutil disable
  • After enabling or disabling System Integrity Protection on a machine, a reboot is required.

Tags:

Bash

Gpl

Osx