Headline
CVE-2023-3218: ITC-3014 Add unique index to MySQL tables to avoid race condition #1517 · it-novum/openITCOCKPIT@2c2c243
Race Condition within a Thread in GitHub repository it-novum/openitcockpit prior to 4.6.5.
@@ -0,0 +1,90 @@
<?php
// Copyright © <2015> <it-novum GmbH>
//
// This file is dual licensed
//
// 1.
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, version 3 of the License.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see http://www.gnu.org/licenses/.
//
// 2.
// If you purchased an openITCOCKPIT Enterprise Edition you can use this file
// under the terms of the openITCOCKPIT Enterprise Edition license agreement.
// License agreement and license key will be shipped with the order
// confirmation.
declare(strict_types=1);
use Migrations\AbstractMigration;
/**
* Class UniqueIndexForIsUnique
*
* Created via:
* oitc migrations create UniqueIndexForIsUnique
*
* Run migration:
* oitc migrations migrate
*
*/
class UniqueIndexForIsUnique extends AbstractMigration {
/**
* Change Method.
*
* More information on this method is available here:
* https://book.cakephp.org/phinx/0/en/migrations.html#the-change-method
* @return void
*/
public function change(): void {
if ($this->hasTable(‘agentchecks’)) {
$this->table(‘agentchecks’)
->addIndex(
[
'name’,
],
[‘unique’ => true]
)
->update();
}
if ($this->hasTable(‘macros’)) {
$this->table(‘macros’)
->addIndex(
[
'name’,
],
[‘unique’ => true]
)
->update();
}
if ($this->hasTable(‘users’)) {
$this->table(‘users’)
->addIndex(
[
'email’,
],
[‘unique’ => true]
)
->addIndex(
[
'email’,
‘ldap_dn’
],
[‘unique’ => true]
)
->update();
}
}
}