Last modified by Agnease on 2026/06/08 18:44

From version 1.2
edited by Agnease
on 2026/05/26 07:42
Change comment: There is no comment for this version
To version 3.12
edited by Agnease
on 2026/06/08 18:44
Change comment: There is no comment for this version

Summary

Details

Page properties
Title
... ... @@ -1,1 +1,1 @@
1 -xwiki-security-review
1 +What an XWiki Security Review Should Actually Include
Content
... ... @@ -28,10 +28,14 @@
28 28   <h4>In this guide</h4>
29 29   <ul>
30 30   <li><a href="#why-it-matters">Why it matters</a></li>
31 + <li><a href="#quick-self-check">Quick self-check</a></li>
31 31   <li><a href="#what-to-review">What to review</a></li>
33 + <li><a href="#common-findings">Common findings</a></li>
32 32   <li><a href="#security-checklist">Security checklist</a></li>
33 33   <li><a href="#review-output">What the review should produce</a></li>
36 + <li><a href="#readiness-checklist">What to prepare</a></li>
34 34   <li><a href="#when-to-review">When to run a review</a></li>
38 + <li><a href="#security-review-faq">FAQ</a></li>
35 35   </ul>
36 36   </aside>
37 37  
... ... @@ -44,6 +44,11 @@
44 44   </p>
45 45  
46 46   <p>
51 + An XWiki security review is a practical audit of the platform configuration, access model,
52 + authentication setup, installed extensions, custom code, infrastructure and recovery procedures.
53 + </p>
54 +
55 + <p>
47 47   Security risks are often hidden in less visible areas: outdated versions, inherited permissions,
48 48   forgotten administrator accounts, overly powerful rights, old extensions, undocumented scripts,
49 49   weak fallback access or backup assumptions that were never tested.
... ... @@ -51,6 +51,20 @@
51 51  
52 52   <div class="resource-note">
53 53   <p>
63 + <strong>In practice:</strong> an XWiki security review should evaluate the XWiki version,
64 + access rights, authentication setup, installed extensions, custom code, infrastructure,
65 + backups, restore expectations and the operational practices used to maintain the instance.
66 + </p>
67 + </div>
68 +
69 + <p>
70 + The value of the review is not only to find technical issues. It is to understand how the instance is actually
71 + used, where risk has accumulated over time, and what should be cleaned up before the next upgrade, migration,
72 + authentication change or business-critical rollout.
73 + </p>
74 +
75 + <div class="resource-note">
76 + <p>
54 54   <strong>The main point:</strong> an XWiki security review should not only check whether the application
55 55   is online. It should evaluate the platform, the access model and the operational practices around it.
56 56   </p>
... ... @@ -70,10 +70,34 @@
70 70   </p>
71 71  
72 72   <p>
73 - A security review helps identify risks before they become incidents, upgrade blockers or maintenance
74 - surprises. It also gives administrators a clearer view of the current state of the instance.
96 + In real XWiki instances, security problems are rarely caused by a single visible mistake. They often come from
97 + years of small configuration decisions: one temporary group, one local right exception, one old extension, one
98 + undocumented script, one backup procedure that nobody has tested recently.
75 75   </p>
76 76  
101 + <h2 id="quick-self-check">Quick self-check: does your XWiki need a security review?</h2>
102 +
103 + <p>
104 + Your XWiki instance may need a security review if one or more of these situations sound familiar.
105 + </p>
106 +
107 + <ul class="resource-checklist">
108 + <li>You are not sure who currently has admin, script or programming rights.</li>
109 + <li>The instance has not been upgraded regularly or the upgrade path is unclear.</li>
110 + <li>SSO, LDAP, OIDC or SAML was configured years ago and not reviewed recently.</li>
111 + <li>Custom scripts, templates, macros or extensions exist but are not clearly documented.</li>
112 + <li>Groups and page-level rights have grown organically over several years.</li>
113 + <li>Backups exist, but the restore process has not been tested or documented.</li>
114 + <li>A new team inherited the instance and has to guess how rights, extensions or customizations were configured.</li>
115 + </ul>
116 +
117 + <div class="resource-note">
118 + <p>
119 + <strong>Practical signal:</strong> if the instance works but nobody can clearly explain the access model,
120 + the customizations and the recovery process, the risk is not only technical. It is operational.
121 + </p>
122 + </div>
123 +
77 77   <h2 id="what-to-review">What should be reviewed</h2>
78 78  
79 79   <h3>1. Version and upgrade status</h3>
... ... @@ -88,6 +88,11 @@
88 88   A repeatable upgrade process is part of the security posture of a long-running XWiki instance.
89 89   </p>
90 90  
138 + <p>
139 + For more details on upgrade planning, see
140 + <a href="$xwiki.getURL('resources.why-upgrade-xwiki')">why regular XWiki upgrades matter</a>.
141 + </p>
142 +
91 91   <h3>2. Access rights and permission model</h3>
92 92   <p>
93 93   XWiki has a powerful access-rights system, but this flexibility needs a clear governance model. A review
... ... @@ -101,6 +101,13 @@
101 101   of small exceptions that nobody reviewed later.
102 102   </p>
103 103  
156 + <p>
157 + For a deeper look at this topic, see
158 + <a href="$xwiki.getURL('resources.xwiki-access-rights-governance')">why XWiki access rights need a clear governance model</a>.
159 + For a practical starting point, see
160 + <a href="$xwiki.getURL('resources.xwiki-access-rights-review')">how to start an XWiki access-rights review</a>.
161 + </p>
162 +
104 104   <h3>3. Authentication and identity management</h3>
105 105   <p>
106 106   Authentication should be reviewed beyond the simple question of whether users can log in. LDAP, Active
... ... @@ -125,6 +125,11 @@
125 125   discovered accidentally during an incident or a production upgrade.
126 126   </p>
127 127  
187 + <p>
188 + Customizations should also be reviewed from a maintenance perspective. See
189 + <a href="$xwiki.getURL('resources.xwiki-custom-development')">how to keep XWiki custom development maintainable across upgrades</a>.
190 + </p>
191 +
128 128   <h3>5. Configuration, infrastructure and operations</h3>
129 129   <p>
130 130   The review should also cover the environment around XWiki: HTTPS and reverse proxy configuration, database
... ... @@ -137,9 +137,55 @@
137 137   knows what is included, how long recovery would take or whether the restore process has ever been tested.
138 138   </p>
139 139  
140 - <h2 id="security-checklist">Practical XWiki security review checklist</h2>
204 + <div class="resource-inline-cta">
205 + <p>
206 + <strong>Need a clearer view of your XWiki security posture?</strong>
207 + A structured review can check versions, access rights, authentication,
208 + extensions, custom code, infrastructure, backups and operational practices.
209 + </p>
210 + <a class="btn btn-default" href="$xwiki.getURL('contact.WebHome')">Request a security review</a>
211 + </div>
141 141  
213 + <h2 id="common-findings">Common findings in real XWiki security reviews</h2>
214 +
215 + <p>
216 + In real XWiki instances, security risks are often not caused by one major mistake. They usually come from
217 + configuration decisions that were reasonable at the time but were never reviewed together later.
218 + </p>
219 +
142 142   <ul class="resource-checklist">
221 + <li>Old administrator accounts that are still active.</li>
222 + <li>Script or programming rights granted to users who no longer maintain the platform.</li>
223 + <li>Groups created for old projects that still grant access.</li>
224 + <li>Page-level rights added as exceptions and never documented.</li>
225 + <li>Custom Velocity or Groovy code that is business-critical but undocumented.</li>
226 + <li>Extensions installed years ago without a clear owner or upgrade validation process.</li>
227 + <li>SSO configured correctly for login, but not reviewed together with XWiki groups.</li>
228 + <li>Backup jobs scheduled automatically, but restore expectations never tested.</li>
229 + <li>Production changes performed without a staging or rollback habit.</li>
230 + </ul>
231 +
232 + <h2 id="what-this-is-not">What this review is not</h2>
233 +
234 + <p>
235 + A security review is not a one-click scan and it is not limited to checking the installed XWiki version.
236 + Automated checks can help, but they cannot fully explain why a group has access, whether a custom script is still
237 + needed, or whether a restore procedure would actually work during an incident.
238 + </p>
239 +
240 + <p>
241 + The review should combine technical checks with context: how the wiki is used, which areas are sensitive, which
242 + users administer it, what customizations matter and what the organization expects during an incident or upgrade.
243 + </p>
244 +
245 + <h2 id="security-checklist">XWiki security review checklist</h2>
246 +
247 + <p>
248 + A practical XWiki security review should cover both application-level and operational risks.
249 + The following checklist can be used as a starting point when reviewing a production instance.
250 + </p>
251 +
252 + <ul class="resource-checklist">
143 143   <li>Check the current XWiki version, target version and upgrade path.</li>
144 144   <li>Review installed extensions, outdated components and unsupported customizations.</li>
145 145   <li>Audit administrator, script and programming rights.</li>
... ... @@ -155,8 +155,8 @@
155 155   <h2 id="review-output">What the review should produce</h2>
156 156  
157 157   <p>
158 - A useful security review should not only produce a list of problems. It should produce a practical action
159 - plan. Each finding should explain the risk, the affected area, the recommended action and the priority.
268 + A useful security review should not only produce a list of detected problems. It should produce a practical
269 + action plan. Each finding should explain the risk, the affected area, the recommended action and the priority.
160 160   </p>
161 161  
162 162   <p>
... ... @@ -165,6 +165,41 @@
165 165   reviewing extensions or preparing the next upgrade.
166 166   </p>
167 167  
278 + <div class="resource-note">
279 + <p>
280 + <strong>A useful review should separate findings by priority:</strong> immediate risks,
281 + planned remediation, maintenance improvements and documentation gaps. This makes the result
282 + easier to act on instead of producing a generic list of observations.
283 + </p>
284 + </div>
285 +
286 + <h3>Example review finding</h3>
287 +
288 + <table class="table table-bordered table-striped">
289 + <thead>
290 + <tr>
291 + <th>Finding</th>
292 + <th>Risk</th>
293 + <th>Recommended action</th>
294 + <th>Priority</th>
295 + </tr>
296 + </thead>
297 + <tbody>
298 + <tr>
299 + <td>Several users have script rights but are no longer responsible for XWiki administration.</td>
300 + <td>Powerful rights remain active without clear ownership.</td>
301 + <td>Confirm the current need, remove obsolete assignments and document approved technical users.</td>
302 + <td>High</td>
303 + </tr>
304 + <tr>
305 + <td>Backups are scheduled, but the restore process has not been tested recently.</td>
306 + <td>Recovery expectations may be incorrect during an incident.</td>
307 + <td>Document backup coverage and perform a restore validation on a test environment.</td>
308 + <td>Medium</td>
309 + </tr>
310 + </tbody>
311 + </table>
312 +
168 168   <p>
169 169   The best outcome is a clearer, safer and more maintainable XWiki instance: one where administrators
170 170   understand the access model, critical features are documented and future upgrades can be planned with
... ... @@ -171,6 +171,24 @@
171 171   fewer surprises.
172 172   </p>
173 173  
319 + <h2 id="readiness-checklist">XWiki security review readiness checklist</h2>
320 +
321 + <p>
322 + Before starting a security review, prepare the following information. This makes the review faster and helps
323 + identify risks more clearly.
324 + </p>
325 +
326 + <ul class="resource-checklist">
327 + <li>Current XWiki version and target upgrade version, if an upgrade is planned.</li>
328 + <li>List of installed extensions and known custom applications.</li>
329 + <li>Authentication method: local users, LDAP, OIDC, SAML, SSO or MFA.</li>
330 + <li>Known restricted spaces, confidential areas or public-facing pages.</li>
331 + <li>List of technical administrators and users with powerful rights.</li>
332 + <li>Known custom scripts, templates, macros, UI extensions or Java components.</li>
333 + <li>Backup location, frequency and last restore test, if known.</li>
334 + <li>Staging or test environment availability.</li>
335 + </ul>
336 +
174 174   <h2 id="when-to-review">When should an XWiki security review be done?</h2>
175 175  
176 176   <p>
... ... @@ -184,15 +184,89 @@
184 184   permissions, extensions, customizations and recovery procedures were configured years earlier.
185 185   </p>
186 186  
187 - <div class="resource-note">
350 + <div class="resource-note related-resources">
351 + <p><strong>Security review series:</strong></p>
352 + <ul>
353 + <li>
354 + <a href="$xwiki.getURL('resources.xwiki-security-review')">What an XWiki security review should actually include</a>
355 + </li>
356 + <li>
357 + <a href="$xwiki.getURL('resources.xwiki-access-rights-governance')">Why XWiki access rights need a clear governance model</a>
358 + </li>
359 + <li>
360 + <a href="$xwiki.getURL('resources.xwiki-access-rights-review')">How to start an XWiki access-rights review</a>
361 + </li>
362 + </ul>
188 188   <p>
189 - Related resources:
190 - <a href="$xwiki.getURL('resources.why-upgrade-xwiki')">why regular XWiki upgrades matter</a>
191 - and
192 - <a href="$xwiki.getURL('resources.xwiki-custom-development')">how to keep XWiki custom development maintainable across upgrades</a>.
364 + Future topics will cover authentication and access control, script and programming rights,
365 + backup validation, extension review and operational practices.
193 193   </p>
194 194   </div>
195 195  
369 + <h2 id="security-review-faq">XWiki security review FAQ</h2>
370 +
371 + <details class="resource-faq-item" open>
372 + <summary>What should an XWiki security review include?</summary>
373 + <p>
374 + An XWiki security review should include the installed XWiki version, upgrade path,
375 + access rights, groups, authentication setup, installed extensions, custom code,
376 + infrastructure, backups, restore expectations and operational procedures.
377 + </p>
378 + </details>
379 +
380 + <details class="resource-faq-item">
381 + <summary>Is an updated XWiki instance automatically secure?</summary>
382 + <p>
383 + No. Updating XWiki is important, but security also depends on permissions,
384 + authentication, extensions, custom code, infrastructure configuration, backups
385 + and how the instance is maintained.
386 + </p>
387 + </details>
388 +
389 + <details class="resource-faq-item">
390 + <summary>Does SSO solve XWiki access control?</summary>
391 + <p>
392 + No. SSO helps authenticate users, but access control still depends on XWiki groups,
393 + inherited permissions, page-level rights and administrative privileges.
394 + </p>
395 + </details>
396 +
397 + <details class="resource-faq-item">
398 + <summary>Why should custom code be reviewed?</summary>
399 + <p>
400 + Custom scripts, templates, macros, UI extensions and Java components can affect
401 + permissions, workflows, rendering, integrations and upgrade behavior. They should
402 + be identified, documented and tested.
403 + </p>
404 + </details>
405 +
406 + <details class="resource-faq-item">
407 + <summary>When should an XWiki security review be done?</summary>
408 + <p>
409 + A review is useful before a major upgrade, after years of organic growth, after
410 + authentication changes, before exposing the wiki more broadly, or when the instance
411 + becomes business-critical.
412 + </p>
413 + </details>
414 +
415 + <div class="resource-note related-resources">
416 + <p><strong>Related resources:</strong></p>
417 + <ul>
418 + <li>
419 + <a href="$xwiki.getURL('resources.xwiki-access-rights-governance')">Why XWiki access rights need a clear governance model</a>
420 + </li>
421 + <li>
422 + <a href="$xwiki.getURL('resources.xwiki-access-rights-review')">How to start an XWiki access-rights review</a>
423 + </li>
424 + <li>
425 + <a href="$xwiki.getURL('resources.why-upgrade-xwiki')">Why regular XWiki upgrades matter</a>
426 + </li>
427 + <li>
428 + <a href="$xwiki.getURL('resources.xwiki-custom-development')">How to keep XWiki custom development maintainable across upgrades</a>
429 + </li>
430 + </ul>
431 + </div>
432 +
196 196   <div class="resource-cta">
197 197   <h3>Need an XWiki security review?</h3>
198 198   <p>
... ... @@ -209,5 +209,54 @@
209 209   </div>
210 210   </section>
211 211  
449 + <script type="application/ld+json">
450 + {
451 + "@context": "https://schema.org",
452 + "@type": "FAQPage",
453 + "mainEntity": [
454 + {
455 + "@type": "Question",
456 + "name": "What should an XWiki security review include?",
457 + "acceptedAnswer": {
458 + "@type": "Answer",
459 + "text": "An XWiki security review should include the installed XWiki version, upgrade path, access rights, groups, authentication setup, installed extensions, custom code, infrastructure, backups, restore expectations and operational procedures."
460 + }
461 + },
462 + {
463 + "@type": "Question",
464 + "name": "Is an updated XWiki instance automatically secure?",
465 + "acceptedAnswer": {
466 + "@type": "Answer",
467 + "text": "No. Updating XWiki is important, but security also depends on permissions, authentication, extensions, custom code, infrastructure configuration, backups and how the instance is maintained."
468 + }
469 + },
470 + {
471 + "@type": "Question",
472 + "name": "Does SSO solve XWiki access control?",
473 + "acceptedAnswer": {
474 + "@type": "Answer",
475 + "text": "No. SSO helps authenticate users, but access control still depends on XWiki groups, inherited permissions, page-level rights and administrative privileges."
476 + }
477 + },
478 + {
479 + "@type": "Question",
480 + "name": "Why should custom code be reviewed in XWiki?",
481 + "acceptedAnswer": {
482 + "@type": "Answer",
483 + "text": "Custom scripts, templates, macros, UI extensions and Java components can affect permissions, workflows, rendering, integrations and upgrade behavior. They should be identified, documented and tested."
484 + }
485 + },
486 + {
487 + "@type": "Question",
488 + "name": "When should an XWiki security review be done?",
489 + "acceptedAnswer": {
490 + "@type": "Answer",
491 + "text": "A review is useful before a major upgrade, after years of organic growth, after authentication changes, before exposing the wiki more broadly, or when the instance becomes business-critical."
492 + }
493 + }
494 + ]
495 + }
496 + </script>
497 +
212 212  {{/html}}
213 213  {{/velocity}}
xwiki-security-review.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Admin
Size
... ... @@ -1,0 +1,1 @@
1 +1.3 MB
Content
Agnease.Code.SEODetailsClass[0]
metaDescription
... ... @@ -1,0 +1,1 @@
1 +Learn what an XWiki security review should include: version status, access rights, authentication, extensions, custom code, infrastructure, backups and operational practices.
metaTitle
... ... @@ -1,0 +1,1 @@
1 +What an XWiki Security Review Should Actually Include | Agnease