Security
Headlines
HeadlinesLatestCVEs

Headline

CVE-2023-22746: Perform checks on provided id when creating user · ckan/ckan@4c22c13

CKAN is an open-source DMS (data management system) for powering data hubs and data portals. When creating a new container based on one of the Docker images listed below, the same secret key was being used by default. If the users didn’t set a custom value via environment variables in the .env file, that key was shared across different CKAN instances, making it easy to forge authentication requests. Users overriding the default secret key in their own .env file are not affected by this issue. Note that the legacy images (ckan/ckan) located in the main CKAN repo are not affected by this issue. The affected images are ckan/ckan-docker, (ckan/ckan-base images), okfn/docker-ckan (openknowledge/ckan-base and openknowledge/ckan-dev images) keitaroinc/docker-ckan (keitaro/ckan images).

CVE
#auth#docker

@@ -1100,6 +1100,110 @@ def test_user_create_password_hash_not_for_normal_users(self): user_obj = model.User.get(user[“id”]) assert user_obj.password != “pretend-this-is-a-valid-hash”
def test_anon_user_create_does_not_update(self): user1 = factories.User(about="This is user 1") user_dict = { "id": user1[“id”], "name": "some_name", "email": "[email protected]", "password": "test1234", }
context = { "user": None, "ignore_auth": False, }
user2 = helpers.call_action(“user_create", context=context, **user_dict) assert user2[“id”] != user1[“id”] assert user2[“about”] != “This is user 1”
def test_normal_user_create_does_not_update(self): user1 = factories.User(about="This is user 1”) user_dict = { "id": user1[“id”], "name": "some_name", "email": "[email protected]", "password": "test1234", }
context = { "user": factories.User()[“name”], "ignore_auth": False, }
user2 = helpers.call_action(“user_create", context=context, **user_dict) assert user2[“id”] != user1[“id”] assert user2[“about”] != “This is user 1”
def test_sysadmin_user_create_does_not_update(self): user1 = factories.User(about="This is user 1”) user_dict = { "id": user1[“id”], "name": "some_name", "email": "[email protected]", "password": "test1234", }
context = { "user": factories.Sysadmin()[“name”], "ignore_auth": False, }
user2 = helpers.call_action("user_create", context=context, **user_dict) assert user2[“id”] != user1[“id”] assert user2[“about”] != “This is user 1”
def test_anon_users_can_not_provide_custom_id(self):
user_dict = { "id": "custom_id", "name": "some_name", "email": "[email protected]", "password": "test1234", }
context = { "user": None, "ignore_auth": False, }
user = helpers.call_action("user_create", context=context, **user_dict) assert user[“id”] != “custom_id”
def test_normal_users_can_not_provide_custom_id(self):
user_dict = { "id": "custom_id", "name": "some_name", "email": "[email protected]", "password": "test1234", }
context = { "user": factories.User()[“name”], "ignore_auth": False, }
user = helpers.call_action("user_create", context=context, **user_dict) assert user[“id”] != “custom_id”
def test_sysadmin_can_provide_custom_id(self):
user_dict = { "id": "custom_id", "name": "some_name", "email": "[email protected]", "password": "test1234", } context = { "user": factories.Sysadmin()[“name”], "ignore_auth": False, }
user = helpers.call_action("user_create", context=context, **user_dict) assert user[“id”] == “custom_id”

def _clear_activities(): from ckan import model

CVE: Latest News

CVE-2023-50976: Transactions API Authorization by oleiman · Pull Request #14969 · redpanda-data/redpanda
CVE-2023-6905
CVE-2023-6903
CVE-2023-6904
CVE-2023-3907