Last modified by Alex Cotiuga on 2026/07/13 06:44

From version 1.1
edited by Alex Cotiuga
on 2026/05/26 07:41
Change comment: There is no comment for this version
To version 4.5
edited by Alex Cotiuga
on 2026/07/13 06: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
Default language
... ... @@ -1,1 +1,0 @@
1 -en
Hidden
... ... @@ -1,1 +1,1 @@
1 -false
1 +true
Content
... ... @@ -1,0 +1,503 @@
1 +{{velocity}}
2 +#set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome'))
3 +{{html clean="false"}}
4 +
5 + <section class="resource-header" aria-labelledby="hero-title">
6 + <div class="container">
7 + <div class="text-center">
8 + <div class="hero-kicker">
9 + <i class="fa fa-shield" aria-hidden="true"></i>
10 + XWiki security review
11 + </div>
12 + </div>
13 +
14 + <h1 id="hero-title">What an XWiki security review should actually include</h1>
15 +
16 + <p class="resource-summary">
17 + A working XWiki instance is not automatically a secure one. A proper review should look at versions,
18 + access rights, authentication, extensions, custom code, infrastructure and operational practices.
19 + </p>
20 + </div>
21 + </section>
22 +
23 + <section class="resource-page">
24 + <div class="container">
25 + <div class="resource-layout">
26 +
27 + <aside class="resource-sidebar" aria-label="Page summary">
28 + <h4>In this guide</h4>
29 + <ul>
30 + <li><a href="#why-it-matters">Why it matters</a></li>
31 + <li><a href="#quick-self-check">Quick self-check</a></li>
32 + <li><a href="#what-to-review">What to review</a></li>
33 + <li><a href="#common-findings">Common findings</a></li>
34 + <li><a href="#security-checklist">Security checklist</a></li>
35 + <li><a href="#review-output">What the review should produce</a></li>
36 + <li><a href="#readiness-checklist">What to prepare</a></li>
37 + <li><a href="#when-to-review">When to run a review</a></li>
38 + <li><a href="#security-review-faq">FAQ</a></li>
39 + </ul>
40 + </aside>
41 +
42 + <article class="resource-content">
43 +
44 + <p>
45 + Many XWiki instances continue to work well from a user perspective while slowly accumulating security
46 + and governance risks. Users can still log in, search, edit pages and access documents, but that does not
47 + always mean the instance is properly secured or easy to maintain.
48 + </p>
49 +
50 + <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>
56 + Security risks are often hidden in less visible areas: outdated versions, inherited permissions,
57 + forgotten administrator accounts, overly powerful rights, old extensions, undocumented scripts,
58 + weak fallback access or backup assumptions that were never tested.
59 + </p>
60 +
61 + <div class="resource-note">
62 + <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>
77 + <strong>The main point:</strong> an XWiki security review should not only check whether the application
78 + is online. It should evaluate the platform, the access model and the operational practices around it.
79 + </p>
80 + </div>
81 +
82 + <h2 id="why-it-matters">Why an XWiki security review matters</h2>
83 +
84 + <p>
85 + XWiki is often used as an internal knowledge base, intranet, documentation platform or controlled
86 + document system. In these cases, the platform may contain sensitive procedures, internal decisions,
87 + customer information, technical documentation, compliance records or business-critical workflows.
88 + </p>
89 +
90 + <p>
91 + The more important the content becomes, the more important it is to understand who can access it, who can
92 + change it, which customizations influence it and how safely the instance can be upgraded or restored.
93 + </p>
94 +
95 + <p>
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.
99 + </p>
100 +
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 +
124 + <h2 id="what-to-review">What should be reviewed</h2>
125 +
126 + <h3>1. Version and upgrade status</h3>
127 + <p>
128 + The current XWiki version should be reviewed together with the target upgrade path, installed extensions
129 + and infrastructure dependencies. An outdated instance is not only a maintenance concern. It can also mean
130 + that security fixes, compatibility improvements and platform hardening are missing.
131 + </p>
132 +
133 + <p>
134 + The review should also check whether upgrades are performed regularly or only when something breaks.
135 + A repeatable upgrade process is part of the security posture of a long-running XWiki instance.
136 + </p>
137 +
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 +
143 + <h3>2. Access rights and permission model</h3>
144 + <p>
145 + XWiki has a powerful access-rights system, but this flexibility needs a clear governance model. A review
146 + should check who has administration rights, who has script or programming rights, whether rights are
147 + assigned through groups, and whether page-level exceptions are still understandable.
148 + </p>
149 +
150 + <p>
151 + It is also important to review inherited rights, public areas, restricted spaces, old groups, inactive
152 + users and sensitive pages. Many permission problems do not come from one obvious mistake, but from years
153 + of small exceptions that nobody reviewed later.
154 + </p>
155 +
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 +
163 + <h3>3. Authentication and identity management</h3>
164 + <p>
165 + Authentication should be reviewed beyond the simple question of whether users can log in. LDAP, Active
166 + Directory, OIDC, SAML, SSO and MFA setups all need to be checked together with group synchronization,
167 + fallback login options, local administrator accounts and recovery procedures.
168 + </p>
169 +
170 + <p>
171 + SSO is useful, but it does not automatically guarantee a clean access model. Authentication confirms who
172 + the user is. Authorization still depends on how XWiki groups and rights are configured.
173 + </p>
174 +
175 + <h3>4. Extensions and custom code</h3>
176 + <p>
177 + Installed extensions, custom applications, Velocity scripts, Groovy scripts, macros, sheets, templates,
178 + UI extensions and Java components are all part of the security and maintenance surface of the instance.
179 + </p>
180 +
181 + <p>
182 + A review should identify what is installed, what is customized, what is still used, what is documented and
183 + what needs special validation during upgrades. Custom code should be tracked, explained and tested, not
184 + discovered accidentally during an incident or a production upgrade.
185 + </p>
186 +
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 +
192 + <h3>5. Configuration, infrastructure and operations</h3>
193 + <p>
194 + The review should also cover the environment around XWiki: HTTPS and reverse proxy configuration, database
195 + access, filesystem and attachment storage, mail configuration, PDF export services, logs, monitoring,
196 + server access and separation between production and staging.
197 + </p>
198 +
199 + <p>
200 + Backups should be reviewed together with restore expectations. A backup strategy is incomplete if nobody
201 + knows what is included, how long recovery would take or whether the restore process has ever been tested.
202 + </p>
203 +
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 + <a class="btn btn-secondary" href="$xwiki.getURL('pricing.WebHome')#common-packages">View review pricing</a>
212 + </div>
213 +
214 + <h2 id="common-findings">Common findings in real XWiki security reviews</h2>
215 +
216 + <p>
217 + In real XWiki instances, security risks are often not caused by one major mistake. They usually come from
218 + configuration decisions that were reasonable at the time but were never reviewed together later.
219 + </p>
220 +
221 + <ul class="resource-checklist">
222 + <li>Old administrator accounts that are still active.</li>
223 + <li>Script or programming rights granted to users who no longer maintain the platform.</li>
224 + <li>Groups created for old projects that still grant access.</li>
225 + <li>Page-level rights added as exceptions and never documented.</li>
226 + <li>Custom Velocity or Groovy code that is business-critical but undocumented.</li>
227 + <li>Extensions installed years ago without a clear owner or upgrade validation process.</li>
228 + <li>SSO configured correctly for login, but not reviewed together with XWiki groups.</li>
229 + <li>Backup jobs scheduled automatically, but restore expectations never tested.</li>
230 + <li>Production changes performed without a staging or rollback habit.</li>
231 + </ul>
232 +
233 + <h2 id="what-this-is-not">What this review is not</h2>
234 +
235 + <p>
236 + A security review is not a one-click scan and it is not limited to checking the installed XWiki version.
237 + Automated checks can help, but they cannot fully explain why a group has access, whether a custom script is still
238 + needed, or whether a restore procedure would actually work during an incident.
239 + </p>
240 +
241 + <p>
242 + The review should combine technical checks with context: how the wiki is used, which areas are sensitive, which
243 + users administer it, what customizations matter and what the organization expects during an incident or upgrade.
244 + </p>
245 +
246 + <h2 id="security-checklist">XWiki security review checklist</h2>
247 +
248 + <p>
249 + A practical XWiki security review should cover both application-level and operational risks.
250 + The following checklist can be used as a starting point when reviewing a production instance.
251 + </p>
252 +
253 + <ul class="resource-checklist">
254 + <li>Check the current XWiki version, target version and upgrade path.</li>
255 + <li>Review installed extensions, outdated components and unsupported customizations.</li>
256 + <li>Audit administrator, script and programming rights.</li>
257 + <li>Review groups, inherited permissions and page-level exceptions.</li>
258 + <li>Validate authentication, SSO, MFA, fallback access and administrator recovery options.</li>
259 + <li>Identify custom scripts, templates, macros, UI extensions and Java components.</li>
260 + <li>Review public, internal and restricted areas.</li>
261 + <li>Check infrastructure, HTTPS, reverse proxy, database, filesystem and mail configuration.</li>
262 + <li>Confirm backup coverage, restore expectations and rollback procedures.</li>
263 + <li>Document findings and prioritize remediation actions.</li>
264 + </ul>
265 +
266 + <h2 id="review-output">What the review should produce</h2>
267 +
268 + <p>
269 + A useful security review should not only produce a list of detected problems. It should produce a practical
270 + action plan. Each finding should explain the risk, the affected area, the recommended action and the priority.
271 + </p>
272 +
273 + <p>
274 + Some findings may require immediate action, such as exposed administration rights or unsafe fallback
275 + access. Others may become planned improvements, such as cleaning old groups, documenting custom code,
276 + reviewing extensions or preparing the next upgrade.
277 + </p>
278 +
279 + <div class="resource-note">
280 + <p>
281 + <strong>A useful review should separate findings by priority:</strong> immediate risks,
282 + planned remediation, maintenance improvements and documentation gaps. This makes the result
283 + easier to act on instead of producing a generic list of observations.
284 + </p>
285 + </div>
286 +
287 + <h3>Example review finding</h3>
288 +
289 + <table class="table table-bordered table-striped">
290 + <thead>
291 + <tr>
292 + <th>Finding</th>
293 + <th>Risk</th>
294 + <th>Recommended action</th>
295 + <th>Priority</th>
296 + </tr>
297 + </thead>
298 + <tbody>
299 + <tr>
300 + <td>Several users have script rights but are no longer responsible for XWiki administration.</td>
301 + <td>Powerful rights remain active without clear ownership.</td>
302 + <td>Confirm the current need, remove obsolete assignments and document approved technical users.</td>
303 + <td>High</td>
304 + </tr>
305 + <tr>
306 + <td>Backups are scheduled, but the restore process has not been tested recently.</td>
307 + <td>Recovery expectations may be incorrect during an incident.</td>
308 + <td>Document backup coverage and perform a restore validation on a test environment.</td>
309 + <td>Medium</td>
310 + </tr>
311 + </tbody>
312 + </table>
313 +
314 + <p>
315 + The best outcome is a clearer, safer and more maintainable XWiki instance: one where administrators
316 + understand the access model, critical features are documented and future upgrades can be planned with
317 + fewer surprises.
318 + </p>
319 +
320 + <h2 id="readiness-checklist">XWiki security review readiness checklist</h2>
321 +
322 + <p>
323 + Before starting a security review, prepare the following information. This makes the review faster and helps
324 + identify risks more clearly.
325 + </p>
326 +
327 + <ul class="resource-checklist">
328 + <li>Current XWiki version and target upgrade version, if an upgrade is planned.</li>
329 + <li>List of installed extensions and known custom applications.</li>
330 + <li>Authentication method: local users, LDAP, OIDC, SAML, SSO or MFA.</li>
331 + <li>Known restricted spaces, confidential areas or public-facing pages.</li>
332 + <li>List of technical administrators and users with powerful rights.</li>
333 + <li>Known custom scripts, templates, macros, UI extensions or Java components.</li>
334 + <li>Backup location, frequency and last restore test, if known.</li>
335 + <li>Staging or test environment availability.</li>
336 + </ul>
337 +
338 + <h2 id="when-to-review">When should an XWiki security review be done?</h2>
339 +
340 + <p>
341 + A review is especially useful before a major upgrade, after years of organic growth, after an authentication
342 + change, before exposing the instance more broadly, after a migration, or when the wiki becomes more
343 + business-critical than it was when first installed.
344 + </p>
345 +
346 + <p>
347 + It is also useful when administration responsibilities change. A new team should not have to guess how
348 + permissions, extensions, customizations and recovery procedures were configured years earlier.
349 + </p>
350 +
351 + <div class="resource-note related-resources">
352 + <p><strong>Security review series:</strong></p>
353 + <ul>
354 + <li>
355 + <a href="$xwiki.getURL('resources.xwiki-security-review')">What an XWiki security review should actually include</a>
356 + </li>
357 + <li>
358 + <a href="$xwiki.getURL('resources.xwiki-access-rights-governance')">Why XWiki access rights need a clear governance model</a>
359 + </li>
360 + <li>
361 + <a href="$xwiki.getURL('resources.xwiki-access-rights-review')">How to start an XWiki access-rights review</a>
362 + </li>
363 + </ul>
364 + <p>
365 + Future topics will cover authentication and access control, script and programming rights,
366 + backup validation, extension review and operational practices.
367 + </p>
368 + </div>
369 +
370 + <h2 id="security-review-faq">XWiki security review FAQ</h2>
371 +
372 + <details class="resource-faq-item" open>
373 + <summary>What should an XWiki security review include?</summary>
374 + <p>
375 + An XWiki security review should include the installed XWiki version, upgrade path,
376 + access rights, groups, authentication setup, installed extensions, custom code,
377 + infrastructure, backups, restore expectations and operational procedures.
378 + </p>
379 + </details>
380 +
381 + <details class="resource-faq-item">
382 + <summary>Is an updated XWiki instance automatically secure?</summary>
383 + <p>
384 + No. Updating XWiki is important, but security also depends on permissions,
385 + authentication, extensions, custom code, infrastructure configuration, backups
386 + and how the instance is maintained.
387 + </p>
388 + </details>
389 +
390 + <details class="resource-faq-item">
391 + <summary>Does SSO solve XWiki access control?</summary>
392 + <p>
393 + No. SSO helps authenticate users, but access control still depends on XWiki groups,
394 + inherited permissions, page-level rights and administrative privileges.
395 + </p>
396 + </details>
397 +
398 + <details class="resource-faq-item">
399 + <summary>Why should custom code be reviewed?</summary>
400 + <p>
401 + Custom scripts, templates, macros, UI extensions and Java components can affect
402 + permissions, workflows, rendering, integrations and upgrade behavior. They should
403 + be identified, documented and tested.
404 + </p>
405 + </details>
406 +
407 + <details class="resource-faq-item">
408 + <summary>When should an XWiki security review be done?</summary>
409 + <p>
410 + A review is useful before a major upgrade, after years of organic growth, after
411 + authentication changes, before exposing the wiki more broadly, or when the instance
412 + becomes business-critical.
413 + </p>
414 + </details>
415 +
416 + <div class="resource-note related-resources">
417 + <p><strong>Related resources:</strong></p>
418 + <ul>
419 + <li>
420 + <a href="$xwiki.getURL('resources.xwiki-access-rights-governance')">Why XWiki access rights need a clear governance model</a>
421 + </li>
422 + <li>
423 + <a href="$xwiki.getURL('resources.xwiki-access-rights-review')">How to start an XWiki access-rights review</a>
424 + </li>
425 + <li>
426 + <a href="$xwiki.getURL('resources.why-upgrade-xwiki')">Why regular XWiki upgrades matter</a>
427 + </li>
428 + <li>
429 + <a href="$xwiki.getURL('resources.xwiki-custom-development')">How to keep XWiki custom development maintainable across upgrades</a>
430 + </li>
431 + </ul>
432 + </div>
433 + </article>
434 +
435 + </div>
436 + </div>
437 + </section>
438 +
439 + <section class="cta-section" aria-labelledby="xwiki-security-review-cta-title">
440 + <div class="container">
441 + <div class="cta-panel">
442 + <h2 id="xwiki-security-review-cta-title">Need an XWiki security review?</h2>
443 + <p>
444 + If your XWiki instance has grown over time, contains sensitive content, uses custom code or depends on
445 + SSO, extensions and business-critical workflows, a structured review can help identify risks and define
446 + the safest next steps.
447 + </p>
448 + <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Request a security review</a>
449 + </div>
450 + </div>
451 + </section>
452 +
453 + <script type="application/ld+json">
454 + {
455 + "@context": "https://schema.org",
456 + "@type": "FAQPage",
457 + "mainEntity": [
458 + {
459 + "@type": "Question",
460 + "name": "What should an XWiki security review include?",
461 + "acceptedAnswer": {
462 + "@type": "Answer",
463 + "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."
464 + }
465 + },
466 + {
467 + "@type": "Question",
468 + "name": "Is an updated XWiki instance automatically secure?",
469 + "acceptedAnswer": {
470 + "@type": "Answer",
471 + "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."
472 + }
473 + },
474 + {
475 + "@type": "Question",
476 + "name": "Does SSO solve XWiki access control?",
477 + "acceptedAnswer": {
478 + "@type": "Answer",
479 + "text": "No. SSO helps authenticate users, but access control still depends on XWiki groups, inherited permissions, page-level rights and administrative privileges."
480 + }
481 + },
482 + {
483 + "@type": "Question",
484 + "name": "Why should custom code be reviewed in XWiki?",
485 + "acceptedAnswer": {
486 + "@type": "Answer",
487 + "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."
488 + }
489 + },
490 + {
491 + "@type": "Question",
492 + "name": "When should an XWiki security review be done?",
493 + "acceptedAnswer": {
494 + "@type": "Answer",
495 + "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."
496 + }
497 + }
498 + ]
499 + }
500 + </script>
501 +
502 +{{/html}}
503 +{{/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