diff --git a/ee/app/assets/javascripts/on_demand_scans_form/components/on_demand_scans_form.vue b/ee/app/assets/javascripts/on_demand_scans_form/components/on_demand_scans_form.vue
index cb205acefd9cbeef64bf8dbb355936b03a03a4e8..9c0893d6af36a1793efbe3559e92b23baaf03bd5 100644
--- a/ee/app/assets/javascripts/on_demand_scans_form/components/on_demand_scans_form.vue
+++ b/ee/app/assets/javascripts/on_demand_scans_form/components/on_demand_scans_form.vue
@@ -23,7 +23,6 @@ import { redirectTo, queryToObject } from '~/lib/utils/url_utility';
 import { s__, __ } from '~/locale';
 import RefSelector from '~/ref/components/ref_selector.vue';
 import { REF_TYPE_BRANCHES } from '~/ref/constants';
-import glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
 import LocalStorageSync from '~/vue_shared/components/local_storage_sync.vue';
 import validation from '~/vue_shared/directives/validation';
 import {
@@ -37,46 +36,12 @@ import ConfigurationPageLayout from 'ee/security_configuration/components/config
 import DastProfilesConfigurator from 'ee/security_configuration/dast_profiles/dast_profiles_configurator/dast_profiles_configurator.vue';
 import dastProfileCreateMutation from '../graphql/dast_profile_create.mutation.graphql';
 import dastProfileUpdateMutation from '../graphql/dast_profile_update.mutation.graphql';
-import {
-  ERROR_RUN_SCAN,
-  ERROR_FETCH_SCANNER_PROFILES,
-  ERROR_FETCH_SITE_PROFILES,
-  ERROR_MESSAGES,
-  SCANNER_PROFILES_QUERY,
-  SITE_PROFILES_QUERY,
-} from '../settings';
+import { ERROR_RUN_SCAN } from '../settings';
 import ProfileConflictAlert from './profile_selector/profile_conflict_alert.vue';
-import ScannerProfileSelector from './profile_selector/scanner_profile_selector.vue';
-import SiteProfileSelector from './profile_selector/site_profile_selector.vue';
 import ScanSchedule from './scan_schedule.vue';
 
 export const ON_DEMAND_SCANS_STORAGE_KEY = 'on-demand-scans-new-form';
 
-/**
- * TODO Can be removed after rolling out
- * dastUiRedesign feature flag
- * Content was transferred to DastProfilesConfigurator
- */
-const createProfilesApolloOptions = (name, field, { fetchQuery, fetchError }) => ({
-  query: fetchQuery,
-  variables() {
-    return {
-      fullPath: this.projectPath,
-    };
-  },
-  update(data) {
-    const nodes = data?.project?.[name]?.nodes ?? [];
-    if (nodes.length === 1) {
-      this[field] = nodes[0].id;
-    }
-    return nodes;
-  },
-  error(e) {
-    Sentry.captureException(e);
-    this.showErrors(fetchError);
-  },
-});
-
 export default {
   enabledRefTypes: [REF_TYPE_BRANCHES],
   saveAndRunScanBtnId: 'scan-submit-button',
@@ -133,8 +98,6 @@ export default {
   components: {
     RefSelector,
     ProfileConflictAlert,
-    ScannerProfileSelector,
-    SiteProfileSelector,
     ScanSchedule,
     GlAlert,
     GlButton,
@@ -155,24 +118,6 @@ export default {
     SafeHtml: GlSafeHtmlDirective,
     validation: validation(),
   },
-  mixins: [glFeatureFlagMixin()],
-  /**
-   * TODO Can be removed after rolling out
-   * dastUiRedesign feature flag
-   * Content was transferred to DastProfilesConfigurator
-   */
-  apollo: {
-    scannerProfiles: createProfilesApolloOptions(
-      'scannerProfiles',
-      'selectedScannerProfileId',
-      SCANNER_PROFILES_QUERY,
-    ),
-    siteProfiles: createProfilesApolloOptions(
-      'siteProfiles',
-      'selectedSiteProfileId',
-      SITE_PROFILES_QUERY,
-    ),
-  },
   inject: ['projectPath', 'onDemandScansPath'],
   props: {
     defaultBranch: {
@@ -214,9 +159,6 @@ export default {
     };
   },
   computed: {
-    /**
-     *  TODO remove after dastUiRedesign flag roll out
-     */
     dastScanId() {
       return this.dastScan?.id ?? null;
     },
@@ -239,15 +181,7 @@ export default {
         : null;
     },
     errorMessage() {
-      return this.glFeatures.dastUiRedesign
-        ? this.errorType
-        : ERROR_MESSAGES[this.errorType] || null;
-    },
-    isLoadingProfiles() {
-      return ['scannerProfiles', 'siteProfiles'].some((name) => this.$apollo.queries[name].loading);
-    },
-    failedToLoadProfiles() {
-      return [ERROR_FETCH_SCANNER_PROFILES, ERROR_FETCH_SITE_PROFILES].includes(this.errorType);
+      return this.errorType;
     },
     someFieldEmpty() {
       const { selectedScannerProfile, selectedSiteProfile } = this;
@@ -426,7 +360,6 @@ export default {
         variant="danger"
         class="gl-mb-5"
         data-testid="on-demand-scan-error"
-        :dismissible="!failedToLoadProfiles"
         @dismiss="hideErrors"
       >
         {{ errorMessage }}
@@ -434,11 +367,7 @@ export default {
           <li v-for="error in errors" :key="error" v-safe-html="error"></li>
         </ul>
       </gl-alert>
-      <section-layout
-        v-if="!failedToLoadProfiles"
-        :heading="$options.i18n.scanConfigurationHeader"
-        :is-loading="isLoadingProfiles"
-      >
+      <section-layout :heading="$options.i18n.scanConfigurationHeader">
         <template #description>
           <p>{{ $options.i18n.scanConfigurationDescription }}</p>
         </template>
@@ -502,53 +431,13 @@ export default {
       </section-layout>
 
       <dast-profiles-configurator
-        v-if="glFeatures.dastUiRedesign"
         :saved-profiles="dastScan"
         :full-path="projectPath"
         @error="showErrors"
         @profiles-selected="selectProfiles"
       />
 
-      <section-layout
-        v-if="!failedToLoadProfiles && !glFeatures.dastUiRedesign"
-        :heading="$options.i18n.dastConfigurationHeader"
-        :is-loading="isLoadingProfiles"
-      >
-        <template #description>
-          <p>
-            <gl-sprintf :message="$options.i18n.dastConfigurationDescription">
-              <template #link="{ content }">
-                <gl-link :href="$options.dastConfigurationHelpPath">{{ content }}</gl-link>
-              </template>
-            </gl-sprintf>
-          </p>
-        </template>
-        <template #features>
-          <scanner-profile-selector
-            v-model="selectedScannerProfileId"
-            class="gl-mb-6"
-            :profiles="scannerProfiles"
-            :selected-profile="selectedScannerProfile"
-            :has-conflict="hasProfilesConflict"
-            :dast-scan-id="dastScanId"
-          />
-
-          <site-profile-selector
-            v-model="selectedSiteProfileId"
-            class="gl-mb-2"
-            :profiles="siteProfiles"
-            :selected-profile="selectedSiteProfile"
-            :has-conflict="hasProfilesConflict"
-            :dast-scan-id="dastScanId"
-          />
-        </template>
-      </section-layout>
-
-      <section-layout
-        v-if="!failedToLoadProfiles"
-        :heading="$options.i18n.scanScheduleHeader"
-        :is-loading="isLoadingProfiles"
-      >
+      <section-layout :heading="$options.i18n.scanScheduleHeader">
         <template #description>
           <p>{{ $options.i18n.scanScheduleDescription }}</p>
         </template>
@@ -557,42 +446,40 @@ export default {
         </template>
       </section-layout>
 
-      <div v-if="!failedToLoadProfiles">
-        <profile-conflict-alert
-          v-if="hasProfilesConflict"
-          class="gl-mt-6"
-          data-testid="on-demand-scans-profiles-conflict-alert"
-        />
+      <profile-conflict-alert
+        v-if="hasProfilesConflict"
+        class="gl-mt-6"
+        data-testid="on-demand-scans-profiles-conflict-alert"
+      />
 
-        <div class="gl-pt-6">
-          <gl-button
-            type="submit"
-            variant="confirm"
-            class="js-no-auto-disable"
-            data-testid="on-demand-scan-submit-button"
-            :disabled="isSubmitButtonDisabled"
-            :loading="loading === $options.saveAndRunScanBtnId"
-          >
-            {{ $options.i18n.saveAndRunScanButton }}
-          </gl-button>
-          <gl-button
-            variant="confirm"
-            category="secondary"
-            data-testid="on-demand-scan-save-button"
-            :disabled="isSaveButtonDisabled"
-            :loading="loading === $options.saveScanBtnId"
-            @click="onSubmit({ runAfter: false, button: $options.saveScanBtnId })"
-          >
-            {{ $options.i18n.saveScanButton }}
-          </gl-button>
-          <gl-button
-            data-testid="on-demand-scan-cancel-button"
-            :disabled="Boolean(loading)"
-            @click="onCancelClicked"
-          >
-            {{ $options.i18n.cancelButton }}
-          </gl-button>
-        </div>
+      <div class="gl-pt-6">
+        <gl-button
+          type="submit"
+          variant="confirm"
+          class="js-no-auto-disable"
+          data-testid="on-demand-scan-submit-button"
+          :disabled="isSubmitButtonDisabled"
+          :loading="loading === $options.saveAndRunScanBtnId"
+        >
+          {{ $options.i18n.saveAndRunScanButton }}
+        </gl-button>
+        <gl-button
+          variant="confirm"
+          category="secondary"
+          data-testid="on-demand-scan-save-button"
+          :disabled="isSaveButtonDisabled"
+          :loading="loading === $options.saveScanBtnId"
+          @click="onSubmit({ runAfter: false, button: $options.saveScanBtnId })"
+        >
+          {{ $options.i18n.saveScanButton }}
+        </gl-button>
+        <gl-button
+          data-testid="on-demand-scan-cancel-button"
+          :disabled="Boolean(loading)"
+          @click="onCancelClicked"
+        >
+          {{ $options.i18n.cancelButton }}
+        </gl-button>
       </div>
     </gl-form>
   </configuration-page-layout>
diff --git a/ee/app/assets/javascripts/security_configuration/dast/components/configuration_form.vue b/ee/app/assets/javascripts/security_configuration/dast/components/configuration_form.vue
index 7c1cc274c36710a5028ed3c1ee12ee373d8a02dc..e3eff35e3ee5d77cf877003de9140735f2246e8f 100644
--- a/ee/app/assets/javascripts/security_configuration/dast/components/configuration_form.vue
+++ b/ee/app/assets/javascripts/security_configuration/dast/components/configuration_form.vue
@@ -1,6 +1,5 @@
 <script>
 import { GlLink, GlSprintf, GlButton, GlForm, GlAlert } from '@gitlab/ui';
-import DastProfilesSelector from 'ee/on_demand_scans_form/components/profile_selector/dast_profiles_selector.vue';
 import DastProfilesConfigurator from 'ee/security_configuration/dast_profiles/dast_profiles_configurator/dast_profiles_configurator.vue';
 import ConfigurationSnippetModal from 'ee/security_configuration/components/configuration_snippet_modal.vue';
 import { CONFIGURATION_SNIPPET_MODAL_ID } from 'ee/security_configuration/components/constants';
@@ -26,7 +25,6 @@ export default {
     GlForm,
     GlAlert,
     ConfigurationSnippetModal,
-    DastProfilesSelector,
     DastProfilesConfigurator,
   },
   mixins: [glFeatureFlagMixin()],
@@ -84,7 +82,6 @@ export default {
 <template>
   <gl-form @submit.prevent="onSubmit">
     <dast-profiles-configurator
-      v-if="glFeatures.dastUiRedesign"
       :configuration-header="$options.i18n.dastConfigurationHeader"
       class="gl-mb-6"
       :full-path="projectPath"
@@ -102,16 +99,6 @@ export default {
       </template>
     </dast-profiles-configurator>
 
-    <section v-if="!glFeatures.dastUiRedesign" class="gl-mt-5">
-      <p>
-        <gl-sprintf :message="$options.i18n.helpText">
-          <template #docsLink="{ content }">
-            <gl-link :href="$options.DAST_HELP_PATH" target="_blank">{{ content }}</gl-link>
-          </template>
-        </gl-sprintf>
-      </p>
-    </section>
-
     <gl-alert
       v-if="showAlert"
       variant="danger"
@@ -122,13 +109,6 @@ export default {
       {{ errorMessage }}
     </gl-alert>
 
-    <dast-profiles-selector
-      v-if="!glFeatures.dastUiRedesign"
-      @profiles-selected="updateProfiles"
-      @error="showErrors"
-      @profiles-has-conflict="hasProfilesConflict = $event"
-    />
-
     <gl-button
       :disabled="isSubmitDisabled"
       :loading="isLoading"
diff --git a/ee/app/controllers/projects/on_demand_scans_controller.rb b/ee/app/controllers/projects/on_demand_scans_controller.rb
index 4672377c4f2399d159d84bce8ccf4d4830375c74..d321eaa206f116acec6e5ff73bafb165473b690e 100644
--- a/ee/app/controllers/projects/on_demand_scans_controller.rb
+++ b/ee/app/controllers/projects/on_demand_scans_controller.rb
@@ -7,9 +7,6 @@ class OnDemandScansController < Projects::ApplicationController
 
     before_action :authorize_read_on_demand_dast_scan!, only: :index
     before_action :authorize_create_on_demand_dast_scan!, only: [:new, :edit]
-    before_action do
-      push_frontend_feature_flag(:dast_ui_redesign, @project)
-    end
 
     feature_category :dynamic_application_security_testing
 
diff --git a/ee/app/controllers/projects/security/dast_configuration_controller.rb b/ee/app/controllers/projects/security/dast_configuration_controller.rb
index f8fbb6fb28396f740b26c4b76d07774ef8c263b9..9098b666b2b387eaef3ac52a4da8875dba14b29b 100644
--- a/ee/app/controllers/projects/security/dast_configuration_controller.rb
+++ b/ee/app/controllers/projects/security/dast_configuration_controller.rb
@@ -8,10 +8,6 @@ class DastConfigurationController < Projects::ApplicationController
 
       alias_method :vulnerable, :project
 
-      before_action do
-        push_frontend_feature_flag(:dast_ui_redesign, @project)
-      end
-
       feature_category :dynamic_application_security_testing
 
       def show
diff --git a/ee/config/feature_flags/development/dast_ui_redesign.yml b/ee/config/feature_flags/development/dast_ui_redesign.yml
deleted file mode 100644
index 3fe320624aaf188c3b150714aa11f5384023fb6e..0000000000000000000000000000000000000000
--- a/ee/config/feature_flags/development/dast_ui_redesign.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-name: dast_ui_redesign
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/86165
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/360820
-milestone: '15.0'
-type: development
-group: group::dynamic analysis
-default_enabled: true
diff --git a/ee/spec/frontend/on_demand_scans_form/components/on_demand_scans_form_spec.js b/ee/spec/frontend/on_demand_scans_form/components/on_demand_scans_form_spec.js
index a85d6a3d64f675eb1d020d7bfff662870859c8c2..f1c78c6512c21e6080a56501de2c1b41a658ffef 100644
--- a/ee/spec/frontend/on_demand_scans_form/components/on_demand_scans_form_spec.js
+++ b/ee/spec/frontend/on_demand_scans_form/components/on_demand_scans_form_spec.js
@@ -6,8 +6,6 @@ import { nextTick } from 'vue';
 import siteProfilesFixtures from 'test_fixtures/graphql/security_configuration/dast_profiles/graphql/dast_site_profiles.query.graphql.basic.json';
 import scannerProfilesFixtures from 'test_fixtures/graphql/security_configuration/dast_profiles/graphql/dast_scanner_profiles.query.graphql.basic.json';
 import OnDemandScansForm from 'ee/on_demand_scans_form/components/on_demand_scans_form.vue';
-import ScannerProfileSelector from 'ee/on_demand_scans_form/components/profile_selector/scanner_profile_selector.vue';
-import SiteProfileSelector from 'ee/on_demand_scans_form/components/profile_selector/site_profile_selector.vue';
 import ScanSchedule from 'ee/on_demand_scans_form/components/scan_schedule.vue';
 import ConfigurationPageLayout from 'ee/security_configuration/components/configuration_page_layout.vue';
 import SectionLayout from '~/vue_shared/security_configuration/components/section_layout.vue';
@@ -82,8 +80,6 @@ describe('OnDemandScansForm', () => {
   const findNameInput = () => findByTestId('dast-scan-name-input');
   const findBranchInput = () => findByTestId('dast-scan-branch-input');
   const findDescriptionInput = () => findByTestId('dast-scan-description-input');
-  const findScannerProfilesSelector = () => wrapper.findComponent(ScannerProfileSelector);
-  const findSiteProfilesSelector = () => wrapper.findComponent(SiteProfileSelector);
   const findAlert = () => findByTestId('on-demand-scan-error');
   const findProfilesConflictAlert = () => findByTestId('on-demand-scans-profiles-conflict-alert');
   const findSubmitButton = () => findByTestId('on-demand-scan-submit-button');
@@ -92,16 +88,9 @@ describe('OnDemandScansForm', () => {
   const findProfileSummary = () => findByTestId('selected-profile-summary');
   const findDastProfilesConfigurator = () => wrapper.find(DastProfilesConfigurator);
 
-  const hasSiteProfileAttributes = () => {
-    expect(findScannerProfilesSelector().attributes('value')).toBe(dastScan.dastScannerProfile.id);
-    expect(findSiteProfilesSelector().attributes('value')).toBe(dastScan.dastSiteProfile.id);
-  };
-
   const setValidFormData = async () => {
     findNameInput().vm.$emit('input', 'My daily scan');
     findBranchInput().vm.$emit('input', selectedBranch);
-    findScannerProfilesSelector().vm.$emit('input', passiveScannerProfile.id);
-    findSiteProfilesSelector().vm.$emit('input', nonValidatedSiteProfile.id);
 
     await nextTick();
   };
@@ -229,6 +218,10 @@ describe('OnDemandScansForm', () => {
 
       expect(wrapper.text()).toContain('New on-demand scan');
       expect(wrapper.findComponent(ScanSchedule).exists()).toBe(true);
+
+      expect(findDastProfilesConfigurator().exists()).toBe(true);
+      expect(findScannerProfilesSelector().exists()).toBe(false);
+      expect(findSiteProfilesSelector().exists()).toBe(false);
     });
 
     it('renders a link to the docs', () => {
@@ -682,36 +675,4 @@ describe('OnDemandScansForm', () => {
       );
     });
   });
-
-  describe('With `dastUiRedesign` feature flag on', () => {
-    beforeEach(() => {
-      createShallowComponent({}, false, {
-        glFeatures: {
-          dastUiRedesign: true,
-        },
-      });
-    });
-
-    it('should have correct component rendered', async () => {
-      expect(findDastProfilesConfigurator().exists()).toBe(true);
-      expect(findScannerProfilesSelector().exists()).toBe(false);
-      expect(findSiteProfilesSelector().exists()).toBe(false);
-    });
-  });
-
-  describe('With `dastUiRedesign` feature flag off', () => {
-    beforeEach(() => {
-      createShallowComponent({}, false, {
-        glFeatures: {
-          dastUiRedesign: false,
-        },
-      });
-    });
-
-    it('should have correct component rendered', async () => {
-      expect(findDastProfilesConfigurator().exists()).toBe(false);
-      expect(findScannerProfilesSelector().exists()).toBe(true);
-      expect(findSiteProfilesSelector().exists()).toBe(true);
-    });
-  });
 });
diff --git a/ee/spec/frontend/security_configuration/dast/components/configuration_form_spec.js b/ee/spec/frontend/security_configuration/dast/components/configuration_form_spec.js
index 486709cffa55481aa800c0dac51f3a8305e85c33..158e06b834a66817c5ac62cd24c18d4a4bd56e3d 100644
--- a/ee/spec/frontend/security_configuration/dast/components/configuration_form_spec.js
+++ b/ee/spec/frontend/security_configuration/dast/components/configuration_form_spec.js
@@ -48,14 +48,7 @@ describe('EE - DAST Configuration Form', () => {
   const findDastProfilesSelector = () => wrapper.findComponent(DastProfilesSelector);
   const findAlert = () => wrapper.findByTestId('dast-configuration-error');
 
-  const createComponentFactory = (mountFn = shallowMount) => (
-    options = {},
-    glFeatures = {
-      glFeatures: {
-        dastUiRedesign: false,
-      },
-    },
-  ) => {
+  const createComponentFactory = (mountFn = shallowMount) => (options = {}) => {
     const defaultMocks = {
       $apollo: {
         queries: {
@@ -76,7 +69,6 @@ describe('EE - DAST Configuration Form', () => {
               securityConfigurationPath,
               gitlabCiYamlEditPath,
               projectPath,
-              ...glFeatures,
             },
             stubs: {
               GlSprintf,