Skip to content

Commit 59fa3e3

Browse files
Conda: Update 'certifi' due to CVE-2022-23491 (devcontainers#383)
1 parent 04143e3 commit 59fa3e3

3 files changed

Lines changed: 38 additions & 1 deletion

File tree

src/conda/devcontainer-feature.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"id": "conda",
3-
"version": "1.0.6",
3+
"version": "1.0.7",
44
"name": "Conda",
55
"description": "A cross-platform, language-agnostic binary package manager",
66
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/conda",

src/conda/install.sh

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,20 @@ check_packages() {
6161
fi
6262
}
6363

64+
sudo_if() {
65+
COMMAND="$*"
66+
if [ "$(id -u)" -eq 0 ] && [ "$USERNAME" != "root" ]; then
67+
su - "$USERNAME" -c "$COMMAND"
68+
else
69+
$COMMAND
70+
fi
71+
}
72+
73+
install_user_package() {
74+
PACKAGE="$1"
75+
sudo_if "${CONDA_DIR}/bin/python3" -m pip install --user --upgrade "$PACKAGE"
76+
}
77+
6478
# Install Conda if it's missing
6579
if ! conda --version &> /dev/null ; then
6680
if ! cat /etc/group | grep -e "^conda:" > /dev/null 2>&1; then
@@ -99,6 +113,9 @@ if ! conda --version &> /dev/null ; then
99113
chmod -R g+r+w "${CONDA_DIR}"
100114

101115
find "${CONDA_DIR}" -type d -print0 | xargs -n 1 -0 chmod g+s
116+
117+
# Temporary due to https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-23491
118+
install_user_package certifi
102119
fi
103120

104121
# Display a notice on conda when not running in GitHub Codespaces

test/conda/test.sh

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,25 @@ check "if conda-notice.txt exists" cat /usr/local/etc/vscode-dev-containers/cond
1212
# Check env
1313
check "CONDA_SCRIPT is set correctly" echo $CONDA_SCRIPT | grep "/opt/conda/etc/profile.d/conda.sh"
1414

15+
check-version-ge() {
16+
LABEL=$1
17+
CURRENT_VERSION=$2
18+
REQUIRED_VERSION=$3
19+
shift
20+
echo -e "\n🧪 Testing $LABEL: '$CURRENT_VERSION' is >= '$REQUIRED_VERSION'"
21+
local GREATER_VERSION=$((echo ${CURRENT_VERSION}; echo ${REQUIRED_VERSION}) | sort -V | tail -1)
22+
if [ "${CURRENT_VERSION}" == "${GREATER_VERSION}" ]; then
23+
echo "✅ Passed!"
24+
return 0
25+
else
26+
echoStderr "❌ $LABEL check failed."
27+
FAILED+=("$LABEL")
28+
return 1
29+
fi
30+
}
31+
32+
certifiVersion=$(python -c "import certifi; print(certifi.__version__)")
33+
check-version-ge "certifi" "${certifiVersion}" "2022.12.07"
34+
1535
# Report result
1636
reportResults

0 commit comments

Comments
 (0)